Как добавить проект библиотеки (например, Sherlock ABS) в Android Studio ?
(Не для старого пакета на основе ADT Eclipse, а для новой Android Studio .)
Gradle
, посмотрите этот ответ StackOverflow .
Как добавить проект библиотеки (например, Sherlock ABS) в Android Studio ?
(Не для старого пакета на основе ADT Eclipse, а для новой Android Studio .)
Gradle
, посмотрите этот ответ StackOverflow .
Ответы:
Обновление для Android Studio 1.0
С момента выхода Android Studio 1.0 (и множества версий между v1.0 и одной из первых с момента моего предыдущего ответа) кое-что изменилось.
Мое описание сосредоточено на добавлении проекта внешней библиотеки вручную через файлы Gradle (для лучшего понимания процесса). Если вы хотите добавить библиотеку с помощью создателя Android Studio, просто проверьте ответ ниже с визуальным руководством (между Android Studio 1.0 и скриншотами есть некоторые отличия, но процесс очень похож).
Прежде чем вы начнете добавлять библиотеку в свой проект вручную, рассмотрите возможность добавления внешней зависимости. Это не испортит структуру вашего проекта. Почти каждая известная библиотека Android доступна в репозитории Maven, и для ее установки требуется всего одна строка кода в app/build.gradle
файле:
dependencies {
compile 'com.jakewharton:butterknife:6.0.0'
}
Добавление библиотеки
Вот полный процесс добавления внешней библиотеки Android в наш проект:
HelloWorld/ app/ - build.gradle // local Gradle configuration (for app only) ... - build.gradle // Global Gradle configuration (for whole project) - settings.gradle - gradle.properties ...
HelloWorld/
) создайте новую папку: /libs
в которую мы поместим наши внешние библиотеки (этот шаг не требуется - только для сохранения более чистой структуры проекта)./libs
папку. В этом примере я использовал библиотеку PagerSlidingTabStrip (просто скачайте ZIP из GitHub, переименуйте каталог библиотеки в «PagerSlidingTabStrip» и скопируйте его). Вот новая структура нашего проекта:HelloWorld/ app/ - build.gradle // Local Gradle configuration (for app only) ... libs/ PagerSlidingTabStrip/ - build.gradle // Local Gradle configuration (for library only) - build.gradle // Global Gradle configuration (for whole project) - settings.gradle - gradle.properties ...
Отредактируйте settings.gradle, добавив свою библиотеку в include
. Если вы используете пользовательский путь, как я, вы также должны определить каталог проекта для нашей библиотеки. Весь файл settings.gradle должен выглядеть так:
include ':app', ':PagerSlidingTabStrip'
project(':PagerSlidingTabStrip').projectDir = new File('libs/PagerSlidingTabStrip')
5.1 Если вы столкнулись с ошибкой «Конфигурация по умолчанию», попробуйте это вместо шага 5,
include ':app'
include ':libs:PagerSlidingTabStrip'
В app/build.gradle
добавить наш проект библиотеки в качестве зависимости:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:21.0.3'
compile project(":PagerSlidingTabStrip")
}
6.1. Если вы выполнили шаг 5.1, то следуйте этому вместо 6,
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:21.0.3'
compile project(":libs:PagerSlidingTabStrip")
}
Если в вашем проекте библиотеки нет build.gradle
файла, вы должны создать его вручную. Вот пример этого файла:
apply plugin: 'com.android.library'
dependencies {
compile 'com.android.support:support-v4:21.0.3'
}
android {
compileSdkVersion 21
buildToolsVersion "21.1.2"
defaultConfig {
minSdkVersion 14
targetSdkVersion 21
}
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
res.srcDirs = ['res']
}
}
}
Кроме того, вы можете создать глобальную конфигурацию для вашего проекта, которая будет содержать версии SDK и версию инструментов сборки для каждого модуля для обеспечения согласованности. Просто отредактируйте gradle.properties
файл и добавьте строки:
ANDROID_BUILD_MIN_SDK_VERSION=14
ANDROID_BUILD_TARGET_SDK_VERSION=21
ANDROID_BUILD_TOOLS_VERSION=21.1.3
ANDROID_BUILD_SDK_VERSION=21
Теперь вы можете использовать его в своих build.gradle
файлах (в модулях приложений и библиотек), как показано ниже:
//...
android {
compileSdkVersion Integer.parseInt(project.ANDROID_BUILD_SDK_VERSION)
buildToolsVersion project.ANDROID_BUILD_TOOLS_VERSION
defaultConfig {
minSdkVersion Integer.parseInt(project.ANDROID_BUILD_MIN_SDK_VERSION)
targetSdkVersion Integer.parseInt(project.ANDROID_BUILD_TARGET_SDK_VERSION)
}
}
//...
Это все. Просто нажмите ‚синхронизировать проект со значком Gradle . Ваша библиотека должна быть доступна в вашем проекте.
Google I / O 2013 - Новая система сборки Android SDK представляет собой отличную презентацию о создании приложений Android с помощью Gradle Build System: как сказал Ксавье Дюкро:
Android Studio - это все о редактировании, отладке и профилировании. Это больше не о строительстве.
В начале это может немного сбивать с толку (особенно для тех, кто работает с Eclipse и никогда не видел муравья, похожего на меня;)), но в конце Gradle дает нам большие возможности, и стоит изучить эту систему сборки.
Global libraries
(# 10: «теперь иди в Глобальные библиотеки»)? Кроме этого, он работает как описано :) Большое спасибо. (Я надеюсь, что Google приступит к этому - такая простая задача в настоящий момент сложна)
Вот наглядное руководство:
Обновление для Android Studio 0.8.2:
В Android Studio 0.8.2 перейдите в « Структура проекта» -> « Модули», просто нажмите кнопку «плюс» и выберите « Импорт существующего проекта» и «Импорт» actionbarsherlock
. Затем синхронизируйте ваши файлы Gradle.
Если вы столкнулись с ошибкой
Ошибка: Версия SDK Build Tools (xx.xx) слишком мала. Требуется минимум yy.yy
просто откройте build.gradle
файл в actionbarsherlock
каталоге и обновите buildToolsVersion
до предложенного.
android {
compileSdkVersion 19
buildToolsVersion 'yy.y.y'
Файл меню -> Структура проекта ... :
Модуль -> Импорт модуля
После импорта модуля библиотеки, выберите свой модуль проекта и добавить зависимость:
И затем выберите импортированный модуль :
Select your project module and add dependency
dependencies { // ... compile project(':library') }
Используйте меню Файл -> Структура проекта -> Модули .
Я начал использовать его сегодня. Это немного по-другому.
Для Шерлока, возможно, вы хотите удалить их тестовый каталог или добавить junit.jar
файл в путь к классам.
Чтобы импортировать библиотеку с помощью Gradle, вы можете добавить ее в свой dependencies
раздел build.gradle
(модуль).
Например
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:22.1.0'
compile 'com.actionbarsherlock:actionbarsherlock:4.4.0@aar'
}
Android Studio меняется.
Существует раздел под названием «Открыть настройки модуля», если вы щелкнете правой кнопкой мыши по папке модуля в разделе проекта Android Studio (я использую версию 0.2.10).
Modules
раздела в Project Structure
окне.
Я бы посчитал необходимым прочитать Зависимости, библиотеки Android и настройку мультипроекта. Пожалуйста, уделите несколько минут.
В частности, в случае не библиотечного проекта jar, прочитайте следующий фрагмент из вышеупомянутого источника:
Gradle-проекты также могут зависеть от других gradle-проектов при использовании многопроектной настройки. Многопроектная настройка обычно работает, когда все проекты являются подпапками данного корневого проекта.
Например, учитывая следующую структуру:
MyProject/
+ app/
+ libraries/
+ lib1/
+ lib2/
Мы можем определить 3 проекта. Gradle будет ссылаться на них со следующим именем:
:app
:libraries:lib1
:libraries:lib2
Каждый проект будет иметь свой собственный build.gradle, объявляющий, как он собирается. Кроме того, в корневом каталоге будет находиться файл с именем settings.gradle, объявляющий проекты. Это дает следующую структуру:
MyProject/
| settings.gradle
+ app/
| build.gradle
+ libraries/
+ lib1/
| build.gradle
+ lib2/
| build.gradle
Содержание файла settings.gradle очень простое:
include ':app', ':libraries:lib1', ':libraries:lib2'
Это определяет, какая папка на самом деле является проектом Gradle.
Проект: app, вероятно, будет зависеть от библиотек, и это делается путем объявления следующих зависимостей:
dependencies {
compile project(':libraries:lib1')
}
Пожалуйста, обратите внимание, что в Android Studio GUI практически не использовался для этого.
В настоящее время я использую подмодули git, чтобы связать вложенную библиотеку с реальной библиотекой git repo, чтобы избежать беспорядка зависимостей.
Я только что нашел более простой способ (вместо записи непосредственно в файлы .gradle).
Это для Android Studio 1.1.0.
Файл меню -> Новый модуль ... :
Нажмите «Импортировать существующий проект».
Выберите нужную библиотеку и нужный модуль.
Нажмите готово. Android Studio импортирует библиотеку в ваш проект. Это будет синхронизировать файлы Gradle.
Добавьте импортированный модуль в зависимости вашего проекта.
Щелкните правой кнопкой мыши папку приложения -> Открыть настройки модуля -> перейдите на вкладку зависимостей -> нажмите кнопку «+» -> щелкните «Зависимость модуля».
Модуль библиотеки будет добавлен в зависимости проекта.
???
прибыль
Самый простой способ, который я нашел, чтобы включить проект внешней библиотеки (например, включить библиотеку Facebook, которая хранится на один каталог в папке зависимостей):
В settings.gradle добавь
include ':facebook'
project(':facebook').projectDir = new File(settingsDir, '../dependencies/FacebookSDK')
В разделе зависимостей build.gradle добавьте
compile project ('facebook')
Осталось только синхронизировать проект с файлами Gradle.
Простой способ добавить файл JAR в качестве библиотеки в проект Android Studio:
а) Скопируйте ваши * .jar файлы
б) Вставьте в каталог libs под ваши проекты:
в) Добавить в build.gradle:
dependencies {
...
compile files('libs/ScanAPIAndroid.jar', 'libs/ScanAPIFactoryAndroid.jar', .., ..)
}
б) Если ваш проект из примера com.example.MYProject и библиотеки com.example.ScanAPI имеет одинаковое пространство имен com.example , Android Studio проверит вашу сборку и создаст все необходимые изменения в вашем проекте. После этого вы можете просмотреть эти настройки в меню Файл -> Структура проекта .
c) Если ваш проект и библиотеки имеют другое пространство имен, вы должны щелкнуть правой кнопкой мыши по библиотеке и выбрать опцию «Добавить как библиотеку» и выбрать тип, который вам нужен.
Помните, что параметр «Структура проекта» не выполняет автоматических изменений в «build.gradle» в текущей версии Android Studio (0.2.3). Возможно, эта функция будет доступна в следующих версиях.
Соответствующий файл build.gradle будет обновлен автоматически.
Откройте файл build.gradle и добавьте новое правило сборки в закрытие зависимостей. Например, если вы хотите добавить Google Play Services, раздел зависимостей вашего проекта будет выглядеть примерно так:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.google.android.gms:play-services:6.5.+'
}
На панели «Проект» Control+ щелкните модуль, для которого вы хотите добавить зависимость, и выберите «Открыть настройки модуля».
Выберите вкладку Зависимости, а затем кнопку + в нижнем левом углу. Вы можете выбрать один из следующих вариантов:
Затем вы можете ввести дополнительную информацию о зависимости, которую вы хотите добавить в свой проект. Например, если вы выбираете Зависимость от библиотеки, Android Studio отображает список библиотек, которые вы можете выбрать.
После того, как вы добавили свою зависимость, проверьте файл build.gradle уровня модуля. Он должен был автоматически обновиться, чтобы включить новую зависимость.
В проекте, в который вы хотите добавить проект внешней библиотеки, перейдите в меню Файл -> Новый -> * Импортировать новый модуль **, перейдите к проекту библиотеки, который вы хотите добавить в свой проект, выберите для добавления модуля «библиотека» в ваш проект. Вы получите settings.gradle в своих проектах, кроме приложения, включенной библиотеки, что-то вроде этого:
include ':app', ':library'
Добавьте в build.gradle (Module: app) в разделе зависимостей:
Скомпилировать проект (': библиотека')
Перестройте проект, и все.
* Вы можете добавить столько библиотек (модулей), сколько захотите. В этом случае в settings.gradle у вас будет:
include ':app', ':lib1', ':lib2', ...
А в build.gradle вам понадобится:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
// Some other dependencies...
compile project(':lib1')
compile project(':lib2')
...
}
Вы можете сделать это легко. Зайдите в меню Файл -> Создать -> Импортировать модуль ... :
Найдите каталог, в котором находится модуль. Нажмите Готово:
Перейти к структуре проекта и добавить модуль зависимости :
Примечание. Если вы получили ошибку SDK, обновите ее.
Редактирование библиотечных зависимостей через графический интерфейс не рекомендуется, так как это не записывает эти изменения в ваш файл build.gradle. Таким образом, ваш проект не будет построен из командной строки. Мы должны отредактировать файл build.gradle напрямую следующим образом.
Например, учитывая следующую структуру:
Мой проект/
Мы можем выделить три проекта. Gradle будет ссылаться на них со следующими именами:
Проект: app, вероятно, будет зависеть от библиотек, и это делается путем объявления следующих зависимостей:
dependencies {
compile project(':libraries:lib1')
}
Чтобы добавить к ответу: Если в среде IDE не отображается ошибка, но при попытке компиляции вы получите что-то вроде:
No resource found that matches the given name 'Theme.Sherlock.Light'
Ваш библиотечный проект, вероятно, скомпилирован как проект приложения. Чтобы изменить это, перейдите на:
Файл меню -> Структура проекта -> Грани -> [Имя библиотеки] -> Отметьте «Модуль библиотеки».
Первый способ Это работает для MacBook.
Сначала выберите ваш файл builder.gradle, как показано на экране:
Добавьте зависимости как на выбранном экране:
Выберите проект синхронизации.
Если вы получаете сообщение об ошибке «Проект с путем»: signature-pad «не может быть найдено в проекте«: приложение »», используйте второй способ:
Выберите меню Файл -> Создать -> Импортировать модуль ... :
После нажатия на модуль импорта ,
укажите путь к библиотеке, как мой путь к MacBook:
Нажмите на Готово . Теперь ваша библиотека добавлена.
После импорта модуля ABS (из меню «Файл»> «Структура проекта») и проверки наличия у него Android 2.2 и библиотеки поддержки v4 в качестве зависимостей я по-прежнему получаю следующую ошибку, когда вы @Alex
Error retrieving parent for item: No resource found that matches the given name 'Theme.Sherlock.Light.DarkActionBar'
Я добавил недавно импортированный модуль в качестве зависимости от основного модуля приложения, и это устранило проблему.
Gradle: Error retrieving parent for item: No resource found that matches the given name 'Theme.Sherlock.Light'.
. Похоже, мой основной проект не видит ресурсов библиотечного проекта (АБС). Однако среда IDE распознает ссылки на классы и ресурсы. Снимок экрана
Просто добавьте имя библиотеки в блок зависимостей файла build.gradle вашего приложения .
dependencies {
// ...
implementation 'com.example:some-library:1.0.0'
}
Обратите внимание, что вы должны использовать, implementation
а не compile
сейчас. Это новое с Android Studio 3.0. См. Этот Q & A для объяснения разницы.
com.android.tools.build:gradle:2.3.3
вместо 3.0.0 в Android Studio 3, если хотите продолжать использовать «compile».
Если у вас есть Android Studio .0.4.0, вы можете создать новую папку в пути сборки YourApp/libraries
. Скопируйте файл JAR. Там, щелкните правой кнопкой мыши и выберите «Добавить как библиотеку». Теперь у вас есть всплывающее окно. Просто выберите ваш каталог и нажмите ОК, и все.
Просто импортируйте проект библиотеки Android в виде модуля и в Build.gradle .
Применить плагин: 'com.android.library'
После этого выполните следующие действия:
https://www.dropbox.com/s/1e3eteu3h0pmkf7/Android%20studio%20_doc.doc?dl=0 - это ссылка на Dropbox о том, как добавить файл JAR и проект библиотеки в последней версии Android Studio 1.0.1.
Пожалуйста, смотрите документацию со скриншотами. Это очень легко для нового пользователя.
Я нашел решение. Это так просто. Следуйте инструкциям froger_mcs .
Убедитесь, что вы сделали папку src Исходной папкой в Структуре проекта -> Модули (Источники).
По сути, вы можете включать файлы JAR тремя различными способами. Последняя - это удаленная библиотека, которая использует https://bintray.com/ jcenter онлайн-репозиторий. Но если вы сделаете это одним из двух других способов, файл JAR будет физически включен в ваш проект. Пожалуйста, прочитайте эту ссылку https://stackoverflow.com/a/35369267/5475941 для получения дополнительной информации. В этом посте я объяснил, как импортировать файл JAR в Android Studio, и объяснил все возможные способы.
Таким образом, если это так (локальный адрес), они загружаются, и эти файлы JAR физически находятся в проекте:
Но, если это такой интернет-адрес, это удаленные библиотеки (часть bintray.com jcenter), и они будут использоваться удаленно:
Я надеюсь, что это помогает.
Откройте файл приложения build gradle module и добавьте свою зависимость. Если вы загружаете библиотеку, просто импортируйте и собирайте ее как Gradle.
В противном случае добавьте репозитории в приложение side gradle:
repositories {
maven { url 'http://clinker.47deg.com/nexus/content/groups/public' }
}
Первые репозитории загрузят библиотеку для вас.
И скомпилируйте загруженную библиотеку:
compile ('com.fortysevendeg.swipelistview:swipelistview:1.0-SNAPSHOT@aar') {
transitive = true
}
Если вы создаете библиотеку, вам просто нужно импортировать проект как новый модуль импорта.
В Android Studio перейдите в папку приложения и откройте файл build.gradle. Здесь вы увидите зависимости {}. Внутри вы можете добавить проект библиотеки и синхронизировать. Теперь после синхронизации библиотека будет добавлена в ваш проект, и вы сможете использовать ее функции и классы в вашем проекте.
Для Android Studio:
Нажмите на Build.gradle (модуль: приложение) .
И добавить для
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile files('libs/commons-io-2.4.jar')
}
и в вашем каталоге "app" создайте каталог "libs". Добавьте файл yourfile.jar:
Наконец, скомпилируйте файлы Gradle:
Я также столкнулся с той же проблемой, тогда я сделал следующие вещи.
Я импортирую проект библиотеки в мою AndroidStudio IDE как модуль, используя меню Файл -> Импортировать меню модуля
Затем я перешел к своему основному модулю, в котором я хочу, чтобы проект библиотеки был зависимым.
Щелкните правой кнопкой мыши по основному модулю (в моем случае это имя приложения ) -> открыть настройки модуля -> перейдите на вкладку зависимостей -> нажмите кнопку + (вы получите его в правой части окна) -> щелкните по зависимости модуля - > выберите свой библиотечный проект из списка
Примените изменения и нажмите OKкнопку.
Это сработало для меня. Я надеюсь, что это поможет и другим.
Добавьте это в свой файл сборки gradle:
dependencies {
implementation 'com.jakewharton:butterknife:9.0.0'
}
Действительно, как версии меняются, так и меняется пользовательский интерфейс и опции, доступные в меню. Прочитав большинство ответов на эти вопросы, я должен был догадаться, что будет работать для Android Studio 1.1.0 .
С помощью мыши выберите проект на главном уровне (именно там отображается название вашего приложения).
Щелкните правой кнопкой мыши и выберите пункты меню « Создать», «Папка», «Папка активов» .
После создания папки ресурсов вставьте или скопируйте в нее любой JAR-файл, необходимый для вашей библиотеки.
В главном меню Android Studio (вверху экрана) выберите Файл -> Структура проекта .
Затем выберите название вашего проекта и перейдите на вкладку Зависимости .
Нажмите на знак плюс ( +) в левом нижнем углу диалогового окна и выберите зависимость от файла.
Наконец, откройте недавно созданную папку ресурсов, выберите скопированные файлы JAR, а затем нажмите «Применить» и OK.
Очистите и восстановите ваш проект.