Як додати проект бібліотеки (наприклад, 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 Build Build - це чудова презентація про створення програм для Android за допомогою системи Gradle Build: Як сказав Xavier Ducrohet:
Android Studio - це питання редагування, налагодження та профілювання. Справа вже не в тому, щоб будувати.
На початку це може бути трохи заплутано (особливо для тих, хто працює з Eclipse і ніколи не бачив мурашника, як я;)), але наприкінці Gradle дає нам чудові можливості і варто вивчити цю систему побудови.
Global libraries
(# 10: "зараз перейдіть до Глобальних бібліотек")? Крім цього, він працює як описано :) Дякую. (Я сподіваюсь, що Google прийде до цього - таке просте завдання наразі є складним у голові)
Ось наочний посібник:
Оновлення для Android Studio 0.8.2:
У Android Studio 0.8.2 перейдіть до Структура проекту -> у розділі Модулі просто натисніть кнопку плюс та виберіть Імпорт існуючого проекту та імпорт actionbarsherlock
. Потім синхронізуйте файли Gradle.
Якщо ви зіткнулися з помилкою
Помилка: версія версії інструментів побудови SDK (xx.xx) занизька. Мінімальний необхідний рік - рік
просто відкрийте 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 та налаштування мультипроектів є необхідними для читання. Будь ласка, знайдіть кілька хвилин для цього.
Зокрема, у випадку з проектом бібліотеки, що не є джерелом, прочитайте наступний фрагмент зверху:
Проекти 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 або взагалі нічого не використовувати.
В даний час я використовую підмодулі git для зв’язку вкладеної бібліотеки до фактичної бібліотеки git repo, щоб уникнути безладу залежності.
Я щойно знайшов простіший спосіб (а не записувати безпосередньо у файли .gradle).
Це для Android Studio 1.1.0.
Файл меню -> Новий модуль ... :
Клацніть на "Імпортувати існуючий проект".
Виберіть потрібну бібліотеку та потрібний модуль.
Клацніть закінчити. Android Studio імпортує бібліотеку у ваш проект. Він буде синхронізувати файли gradle.
Додайте імпортований модуль до залежностей вашого проекту.
Клацніть правою кнопкою миші на папці програми -> Відкрити налаштування модуля -> перейдіть на вкладку залежностей -> Клацніть на кнопку '+' -> натисніть на залежність модуля.
Потім модуль бібліотеки буде доданий до залежностей проекту.
???
Прибуток
Найпростіший спосіб я включити проект зовнішньої бібліотеки - це (наприклад, включити бібліотеку Facebook, яка зберігається в одному каталозі в папці залежностей):
У налаштуваннях.gradle додати
include ':facebook'
project(':facebook').projectDir = new File(settingsDir, '../dependencies/FacebookSDK')
Додайте в розділ залежностей build.gradle
compile project ('facebook')
Залишилося синхронізувати проект з файлами gradle.
Простий спосіб додати файл JAR як бібліотеку до проекту Android Studio:
а) Скопіюйте файли * .jar
b) Вставте в каталог libs під своїми проектами:
в) Додати до build.gradle:
dependencies {
...
compile files('libs/ScanAPIAndroid.jar', 'libs/ScanAPIFactoryAndroid.jar', .., ..)
}
b) Якщо ваш проект із прикладу com.example.MYProject і бібліотеки com.example.ScanAPI має однакову область імен com.example , Android Studio перевірить вашу збірку та створить усі необхідні зміни у вашому проекті. Після цього ви можете переглянути ці налаштування в меню Файл -> Структура проекту .
c) Якщо ваш проект та бібліотеки мають інший простір імен, вам слід клацнути правою кнопкою миші на бібліотеці та вибрати опцію "Додати як бібліотеку" та вибрати тип необхідного.
Пам'ятайте, що в поточній версії Android Studio (0.2.3) опція "Структура проекту" не робить жодних автоматичних змін у "build.gradle". Можливо, ця функція буде доступна в наступних версіях.
Відповідний файл build.gradle буде оновлено автоматично.
Відкрийте файл build.gradle та додайте нове правило збірки до закриття залежностей. Наприклад, якщо ви хочете додати служби Google Play, розділ залежності вашого проекту виглядатиме приблизно так:
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 (Модуль: додаток) у розділі залежностей:
Проект компіляції (': library')
Побудуйте проект, і все.
* Ви можете додати скільки завгодно бібліотек (модулів). У цьому випадку у 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 безпосередньо таким чином.
Наприклад, надано такій структурі:
MyProject /
Ми можемо виділити три проекти. Gradle посилатиме їх на такі назви:
Проект: app, ймовірно, залежатиме від бібліотек, і це робиться шляхом оголошення наступних залежностей:
dependencies {
compile project(':libraries:lib1')
}
Щоб додати відповідь: Якщо IDE не показує помилок, але при спробі компіляції ви отримуєте щось на кшталт:
No resource found that matches the given name 'Theme.Sherlock.Light'
Ваш проект бібліотеки, ймовірно, складений як прикладний проект. Щоб змінити це, перейдіть до:
Файл меню -> Структура проекту -> Грані -> [Назва бібліотеки] -> Поставте прапорець "Модуль бібліотеки".
Перший спосіб Це працює для MacBook.
Спочатку виберіть файл builder.gradle як даний екран:
Додайте залежності, як на вибраному екрані:
Виберіть проект синхронізації.
Якщо ви отримуєте помилку на кшталт "Проект із контуром": підпис "не вдалося знайти в проекті:: додаток" ", то будь ласка, використовуйте другий спосіб:
Виберіть меню Файл -> Нове -> Модуль імпорту ... :
Після натискання на модуль імпорту ,
надати шлях бібліотеки, як, як мій шлях 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'.
. Схоже, мій основний проект не бачить ресурсів бібліотечного проекту (ABS). Однак IDE розпізнає посилання на класи та ресурси. Скріншот
Просто додайте ім’я бібліотеки до блоку залежностей файлу build.gradle додатка .
dependencies {
// ...
implementation 'com.example:some-library:1.0.0'
}
Зауважте, що вам слід скористатися, implementation
а не compile
зараз. Це нове для Android Studio 3.0. Дивіться це питання і відповіді для пояснення різниці.
com.android.tools.build:gradle:2.3.3
замість 3.0.0 в Android Studio 3, якщо хочете продовжувати використовувати "компілювати".
Просто імпортуйте проект бібліотеки 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 папкою Source у структурі проекту -> Модулі (Джерела).
В основному, ви можете включати свої файли JAR трьома різними способами. Останній - віддалена бібліотека, яка використовує онлайн-сховище https://bintray.com/ jcenter. Але якщо ви зробите це одним із двох інших способів, файл JAR буде фізично включений у ваш проект. Прочитайте це посилання https://stackoverflow.com/a/35369267/5475941 для отримання додаткової інформації. У цій публікації я пояснив, як імпортувати свій файл JAR в студію Android, і пояснив усі можливі способи.
Підсумовуючи це, якщо він такий (локальна адреса), вони завантажуються, і ці файли JAR є фізично в проекті:
Але якщо це така Інтернет-адреса, це віддалені бібліотеки (частина bintray.com jcenter), і вони будуть використовуватися віддалено:
Я сподіваюся, що це допомагає.
Відкрийте файл програми модуля build gradle і додайте свою залежність. Якщо ви завантажуєте бібліотеку, просто імпортуйте та будуйте як gradle.
В іншому випадку додайте сховища в додаток модуля бічного gradle:
repositories {
maven { url 'http://clinker.47deg.com/nexus/content/groups/public' }
}
Перші сховища завантажать бібліотеку для вас.
І компілюйте завантажену бібліотеку:
compile ('com.fortysevendeg.swipelistview:swipelistview:1.0-SNAPSHOT@aar') {
transitive = true
}
Якщо ви створюєте бібліотеку, вам просто потрібно імпортувати проект як імпортувати новий модуль.
У студії Android перейдіть до папки додатків та відкрийте файл build.gradle. Тут ви побачите залежності {}. Всередині нього можна додати проект бібліотеки та синхронізувати. Тепер після синхронізації бібліотеки вона буде додана до вашого проекту, і ви можете використовувати його функції та класи у вашому проекті.
Для Android Studio:
Клацніть на Build.gradle (модуль: додаток) .
І додати за
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile files('libs/commons-io-2.4.jar')
}
а у вашому каталозі "додаток" створіть каталог "libs". Додайте файл yourfile.jar:
Нарешті, складіть файли Gradle:
Я також зіткнувся з тією ж проблемою, що потім робив наступні речі.
Я імпортую проект бібліотеки в свій AndroidStudio IDE як модуль, використовуючи меню Файл -> Імпорт меню модулів
Потім я перейшов до свого основного модуля, в якому я хочу, щоб проект бібліотеки був залежним проектом
Клацніть правою кнопкою миші на основний модуль (в моєму випадку його назва - додаток ) -> відкрити налаштування модуля -> перейти на вкладку залежності -> натиснути на кнопку + (ви отримаєте її в правій частині вікна) -> натисніть на залежність модуля - > виберіть зі свого списку проект бібліотеки
Застосуйте зміни та натисніть OKкнопку.
Це працювало для мене. Я сподіваюся, що це допоможе і іншим.
Додайте це у свій файл gradle gradle:
dependencies {
implementation 'com.jakewharton:butterknife:9.0.0'
}
Оскільки версії змінюються, так змінюється і користувальницький інтерфейс та параметри, доступні в меню. Прочитавши більшість відповідей на ці запитання, мені довелося здогадатися, що буде працювати для Android Studio 1.1.0 .
За допомогою миші виберіть проект на головному рівні (саме тут відображається назва вашої програми).
Клацніть правою кнопкою миші та виберіть параметри меню New, Folder, Assets Folder .
Після створення папки активів, вставте або скопіюйте її, незалежно від файлу JAR, який вам потрібен для вашої бібліотеки.
У головному меню Android Studio (у верхній частині екрана) виберіть Файл -> Структура проекту .
Потім виберіть назву проекту та перейдіть на вкладку Залежності .
Клацніть на знак плюс ( +) в нижній лівій частині діалогового вікна та виберіть залежність файлу.
Нарешті відкрийте нещодавно створену папку активів, виберіть файли JAR, які ви скопіювали, а потім натисніть кнопку Застосувати та OK.
Очистіть і відновіть свій проект.