it-swarm.com.ru

Как добавить проект библиотеки в Android Studio?

Как добавить проект библиотеки (например, Sherlock ABS) в Android Studio ?

(Не для старого пакета на основе ADT Eclipse, а для нового Android Studio .)

778
Alexander Kulyakhtin

Обновление для Android Studio 1.0

С момента выхода Android Studio 1.0 (и множества версий между v1.0 и одной из первых с момента моего предыдущего ответа) кое-что изменилось.

Мое описание сосредоточено на добавлении проекта внешней библиотеки вручную через файлы Gradle (для лучшего понимания процесса). Если вы хотите добавить библиотеку через Android Studio creator, просто отметьте ответ ниже с визуальным руководством (есть некоторые различия между Android Studio 1.0 и теми из скриншоты, но процесс очень похож).

Прежде чем вы начнете добавлять библиотеку в свой проект вручную, рассмотрите возможность добавления внешней зависимости. Это не повлияет на структуру вашего проекта. Почти каждая известная библиотека Android доступна в репозитории Maven , и для ее установки требуется всего одна строка кода в файле app/build.gradle:

dependencies {
     compile 'com.jakewharton:butterknife:6.0.0'
}

Добавление библиотеки

Вот полный процесс добавления внешней библиотеки Android в наш проект:

  1. Создайте новый проект через Android Studio Studio. Я назвал это HelloWorld .
  2. Вот исходная структура проекта, созданная Android Studio:
HelloWorld/
      app/
           - build.gradle  // local Gradle configuration (for app only)
           ...
      - build.gradle // Global Gradle configuration (for whole project)
      - settings.gradle
      - gradle.properties
      ...
  1. В корневом каталоге (HelloWorld/) создайте новую папку: /libs, в которую мы поместим наши внешние библиотеки (этот шаг не требуется - только для сохранения более чистой структуры проекта).
  2. Вставьте вашу библиотеку во вновь созданную папку /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
      ...
  1. Отредактируйте settings.gradle, добавив свою библиотеку в include. Если вы используете пользовательский путь, как я, вы также должны определить каталог проекта для нашей библиотеки. Весь файл settings.gradle должен выглядеть так:

    include ':app', ':PagerSlidingTabStrip'
    project(':PagerSlidingTabStrip').projectDir = new File('libs/PagerSlidingTabStrip')
    

5.1 Если вы столкнулись с ошибкой "Конфигурация по умолчанию", попробуйте это вместо шага 5,

    include ':app'
    include ':libs:PagerSlidingTabStrip'
  1. В 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")
    }
  1. Если в вашем библиотечном проекте нет файла 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']
                }
            }
        }
    
  2. Кроме того, вы можете создать глобальную конфигурацию для вашего проекта, которая будет содержать версии 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)
        }
    }
    //...
    
  3. Это все. Просто нажмите "синхронизировать проект со значком Gradle" synchronise with Gradle, Ваша библиотека должна быть доступна в вашем проекте.

Google I/O 2013 - новая Android система сборки SDK - отличная презентация о сборке Android приложения с Gradle Build System: как сказал Ксавье Дюкро:

Android Studio - это все о редактировании, отладке и профилировании. Это больше не о строительстве.

В начале это может немного сбивать с толку (особенно для тех, кто работает с Eclipse и никогда не видел муравья, как я;)), но в конце Gradle дает нам большие возможности, и это Стоит изучить эту систему сборки.

707
froger_mcs

Вот наглядное руководство:

Обновление для Android Studio 0.8.2:

В Android Studio 0.8.2 перейдите в Структура проекта -> в разделе Модули просто нажмите кнопку плюса и выберите Импортировать существующий проект и импортировать actionbarsherlock. Затем синхронизируйте ваши файлы Gradle.

Если вы столкнулись с ошибкой

Ошибка: Версия SDK Build Tools (xx.x.x) слишком мала. Требуется минимум yy.y.y

просто откройте файл build.gradle в каталоге actionbarsherlock и обновите buildToolsVersion до рекомендуемого.

Android {
  compileSdkVersion 19
  buildToolsVersion 'yy.y.y'

Android Studio 0.8.2


Файл меню -> Структура проекта ... :

First

Модуль -> Модуль импорта

Second

После импорта модуля библиотеки выберите свой модуль проекта и добавьте зависимость:

Third

И затем выберите импортированный модуль :

Forth

272
Sam Rad

Используйте меню Файл -> Структура проекта -> Модули.

Я начал использовать его сегодня. Это немного по-другому.

Для Шерлока, возможно, вы захотите удалить их тестовый каталог или добавить файл 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:[email protected]'
}

Android Studio меняется.

Существует раздел под названием "Открыть настройки модуля", если вы щелкнете правой кнопкой мыши по папке модуля в разделе проекта Android Studio (я использую версию 0.2.10).

110
Blackbelt

Я бы посчитал Зависимости, 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 submodules , чтобы связать вложенную библиотеку с реальной библиотекой git repo, чтобы избежать беспорядка зависимостей.

51
Jonathan Lin

Я только что нашел более простой способ (вместо записи непосредственно в файлы .gradle).

Это для Android Studio 1.1.0.

  1. Меню Файл -> Новый модуль ...:

    Import Existing Project

    Нажмите "Импортировать существующий проект".

  2. Выберите нужную библиотеку и нужный модуль.

  3. Нажмите готово. Android Studio импортирует библиотеку в ваш проект. Это будет синхронизировать файлы Gradle.

  4. Добавьте импортированный модуль в зависимости вашего проекта.

    Щелкните правой кнопкой мыши папку приложения -> Открыть настройки модуля -> перейдите на вкладку зависимостей -> нажмите кнопку "+" -> щелкните "Зависимость модуля".

    Модуль библиотеки будет добавлен в зависимости проекта.

    Add library module

  5. ???

  6. Прибыль

24
René Michel

Самый простой способ, который я нашел для включения проекта внешней библиотеки (например, включить библиотеку Facebook, которая хранится на один каталог в папке зависимостей):

  1. В settings.gradle добавь

    include ':facebook'
    
    project(':facebook').projectDir = new File(settingsDir, '../dependencies/FacebookSDK')
    
  2. В разделе зависимостей build.gradle добавьте

    compile project ('facebook')
    

Осталось только синхронизировать проект с файлами Gradle.

16
Vilen

Простой способ добавить файл JAR в виде библиотеки в проект Android Studio:

а) Скопируйте ваши * .jar файлы

б) Вставьте в каталог libs под вашими проектами:

Enter image description here

в) Добавить в build.gradle:

dependencies {
    ...
    compile files('libs/ScanAPIAndroid.jar', 'libs/ScanAPIFactoryAndroid.jar', .., ..)
}

b) если ваш проект из примера com.example.MYProject и библиотеки com.example.ScanAPI имеет одинаковое пространство имен com.example, Android Studio проверит вашу сборку и создаст все необходимые изменения в вашем проекте. После этого вы можете просмотреть эти настройки в меню Файл -> Структура проекта ,.

c) если у вашего проекта и библиотек другое пространство имен вам нужно щелкнуть правой кнопкой мыши библиотеку, выбрать опцию "Добавить как библиотеку" и выбрать нужный тип.

Помните, что опция "Структура проекта" не выполняет автоматических изменений в "build.gradle" в текущей версии Android Studio (0.2.3). Возможно, эта функция будет доступна в следующих версиях.

14
Eugene Bosikov

Вариант 1. Перетащите файлы в каталог libs/Project.

Соответствующий файл build.gradle будет обновлен автоматически.

Вариант 2. Вручную измените файл build.gradle

Откройте файл build.gradle и добавьте новое правило сборки в закрытие зависимостей. Например, если вы хотите добавить Google Play Services, раздел зависимостей вашего проекта будет выглядеть примерно так:

dependencies {
     compile fileTree(dir: 'libs', include: ['*.jar'])
     compile 'com.google.Android.gms:play-services:6.5.+'
   }

Вариант 3: использование Android пользовательского интерфейса Studio

На панели "Проект" Control + щелкните модуль, к которому вы хотите добавить зависимость, и выберите "Открыть настройки модуля".

Enter image description here

Выберите вкладку Зависимости, а затем кнопку + в левом нижнем углу. Вы можете выбрать один из следующих вариантов:

  • Зависимость библиотеки
  • Зависимость файла
  • Зависимость модуля

Затем вы можете ввести дополнительную информацию о зависимости, которую вы хотите добавить в свой проект. Например, если вы выберете Зависимость библиотеки, Android Studio отобразит список библиотек, которые вы можете выбрать.

После того, как вы добавили свою зависимость, проверьте файл build.gradle уровня модуля. Он должен был автоматически обновиться, чтобы включить новую зависимость.

Источник

11
pathe.kiran

Вот как это работает для меня в Android Studio 1.5 +

В проекте, в который вы хотите добавить проект внешней библиотеки, перейдите в меню Файл -> Новый -> * Импортировать новый модуль **, перейдите к проекту библиотеки, который вы хотите добавить в свой проект, выберите для добавления модуля "библиотека" в ваш проект. Вы получите 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')
    ...
}
9
pandabear

Если вам нужен доступ к ресурсам библиотечного проекта (как вы делаете с ABS), убедитесь, что вы добавили библиотечный проект/модуль как "Зависимость модуля" вместо "Библиотека".

8
drewan50
  1. Нажмите F4 чтобы показать структура проекта, щелкните библиотеки или глобальные библиотеки и нажмите + добавить файл JAR.
  2. Нажмите Модули, что вы хотите добавить JAR, выберите вкладку Зависимости, нажмите +и добавьте библиотеку.
7
Crossle Song

Вы можете сделать это легко. Перейти в меню Файл -> Новый -> Модуль импорта ... :

Enter image description here

Найдите каталог, в котором находится модуль. Нажмите Готово:

Enter image description here

Перейдите к Структуре проекта и добавьте Зависимость модуля :

Enter image description here

Примечание. Если вы получили ошибку SDK, обновите ее.

6
Adiii

Редактирование библиотечных зависимостей через графический интерфейс не рекомендуется, так как это не записывает эти изменения в ваш файл build.gradle. Таким образом, ваш проект не будет построен из командной строки. Мы должны отредактировать файл build.gradle напрямую следующим образом.

Например, дана следующая структура:

Мой проект/

  • приложение/
  • библиотеки /
    • lib1 /
    • lib2 /

Мы можем выделить три проекта. Gradle будет ссылаться на них со следующими именами:

  1. :приложение
  2. : Библиотеки: lib1
  3. : Библиотеки: lib2

Проект: app, вероятно, зависит от библиотек, и это делается путем объявления следующих зависимостей:

dependencies {
    compile project(':libraries:lib1')
}
5
Shakti Malik

Чтобы добавить к ответу: Если в IDE не отображается ошибка, но при попытке компиляции вы получите что-то вроде:

No resource found that matches the given name 'Theme.Sherlock.Light'

Ваш библиотечный проект, вероятно, скомпилирован как проект приложения. Чтобы изменить это, перейдите на:

Меню Файл -> Структура проекта -> Грани -> [Имя библиотеки] -> Отметьте "Модуль библиотеки".

5
Dalmas

First Way Это работает для MacBook.

Сначала выберите ваш файл builder.gradle, как показано на экране:

Enter image description here

Добавьте зависимости как на выбранном экране:

Enter image description here

Выберите проект синхронизации.

Если вы получаете сообщение об ошибке "Проект с путем": signature-pad "не может быть найдено в проекте": приложение "", используйте второй способ:

Выберите меню Файл -> Новый -> Модуль импорта ... :

Enter image description here

После нажатия на Модуль импорта ,

Enter image description here

укажите путь к библиотеке, как мой путь к MacBook:

Enter image description here

Нажмите Готово . Теперь ваша библиотека добавлена.

4
Hemant

После импорта модуля ABS (из меню "Файл"> "Структура проекта") и проверки его наличия в качестве зависимостей Android 2.2 и библиотеки поддержки v4, я по-прежнему получаю следующую ошибку, когда вы @Alex

Error retrieving parent for item: No resource found that matches the given name 'Theme.Sherlock.Light.DarkActionBar'

Я добавил недавно импортированный модуль в качестве зависимости от основного модуля приложения, и это устранило проблему.

4
Erwan

Android Studio 3.0

Просто добавьте имя библиотеки в блок зависимостей вашего файла build.gradle.

dependencies {
    // ...
    implementation 'com.example:some-library:1.0.0'
}

Обратите внимание, что вы должны использовать implementation вместо compile сейчас. Это новое в Android Studio 3.0. Смотрите это Q & A для объяснения разницы.

3
Suragch

Чтобы решить эту проблему, вам просто нужно добавить путь к ресурсу abs в файл сборки проекта, как показано ниже:

sourceSets {
    main {
        res.srcDirs = ['src/main/res','../../ActionBarSherlock/actionbarsherlock/res']
    }
}

Итак, я снова компилирую без ошибок.

3
azh

Если у вас есть Android Studio .0.4.0, вы можете создать новую папку в своем пути сборки, YourApp/libraries. Скопируйте файл JAR. Там, щелкните правой кнопкой мыши и выберите "Добавить как библиотеку". Теперь у вас есть всплывающее окно. Просто выберите ваш каталог и нажмите ОК, и все.

3
Braunster

https://www.dropbox.com/s/1e3eteu3h0pmkf7/Android%20studio%20_doc.doc?dl= - это ссылка Dropbox о том, как добавить файл JAR и проект библиотеки в последней версии из Android Studio 1.0.1.

Пожалуйста, смотрите документацию со скриншотами. Это очень просто для нового пользователя.

2
ankitbumblebee

Просто импортируйте проект библиотеки Android как модуль и в Build.gradle.

Применить плагин: 'com.Android.library'

После этого выполните следующие действия:

  1. Щелкните правой кнопкой мыши на модуле и выберите открыть настройки модуля
  2. Выберите зависимости, нажмите на +выберите зависимости библиотеки и добавьте ранее импортированный модуль.
2
Pankaj kumar

Откройте файл приложения build gradle module и добавьте свою зависимость. Если вы загружаете библиотеку, просто импортируйте и собирайте ее как Gradle.

В противном случае добавьте репозитории в приложение side gradle:

repositories {
        maven { url 'http://clinker.47deg.com/nexus/content/groups/public' }
}

Первые репозитории загрузят библиотеку для вас.

И скомпилируйте загруженную библиотеку:

 compile ('com.fortysevendeg.swipelistview:swipelistview:[email protected]') {
        transitive = true
    }

Если вы создаете библиотеку, вам просто нужно импортировать проект как новый модуль импорта.

2
Jinu

По сути, вы можете включать файлы JAR тремя различными способами. Последняя - это удаленная библиотека, которая использует https://bintray.com/ онлайн-хранилище jcenter. Но если вы сделаете это одним из двух других способов, файл JAR будет физически включен в ваш проект. Пожалуйста, прочитайте эту ссылку https://stackoverflow.com/a/35369267/5475941 для получения дополнительной информации. В этом посте я объяснил, как импортировать ваш файл JAR в Android studio, и объяснил все возможные способы.

Таким образом, если это так (локальный адрес), они загружаются, и эти файлы JAR физически находятся в проекте:

enter image description here

Но, если это такой интернет-адрес, это удаленные библиотеки (часть bintray.com jcenter), и они будут использоваться удаленно:

enter image description here

Я надеюсь, что это помогает.

2
Vahid

Я нашел решение. Это так просто. Следуйте инструкциям froger_mcs .

Убедитесь, что вы сделали папку src папкой Source в Структуре проекта -> Модули (Источники).

Enter image description here

2
passsy

У меня была другая причина проблемы, поэтому для людей:

repositories {
    mavenCentral()
}

измените mavenCentral () на jcenter () и добавьте

allprojects {
    repositories {
        jcenter()
    }
}
1
jobbert

Для Android Studio:

Enter image description here

Нажмите Build.gradle (модуль: приложение) .

И добавить для

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile files('libs/commons-io-2.4.jar')
}

и в вашем каталоге "app" создайте каталог "libs". Добавьте файл yourfile.jar:

Enter image description here

Наконец, скомпилируйте файлы Gradle:

Enter image description here

1
Mourad MAMASSI

В Android Studio перейдите в папку приложения и откройте файл build.gradle. Здесь вы увидите зависимости {}. Внутри него вы можете добавить проект библиотеки и синхронизировать. Теперь после синхронизации библиотека будет добавлена ​​в ваш проект, и вы сможете использовать ее функции и классы в вашем проекте.

1
Dharmendra Pratap

Я также столкнулся с той же самой проблемой, тогда я сделал следующие вещи.

  1. Я импортирую проект библиотеки в мой AndroidStudio IDE как модуль, используя файл меню -> Импортировать меню модуля

  2. Затем я перешел к своему основному модулю, в котором я хочу, чтобы проект библиотеки был зависимым.

  3. Щелкните правой кнопкой мыши по основному модулю (в моем случае его имя приложение) -> открыть настройки модуля -> перейдите на вкладку зависимостей -> нажмите на кнопку + (вы получите его в правой части окна) -> нажмите на зависимость модуля -> выберите проект библиотеки из списка

Примените изменения и нажмите OK кнопка.

Это сработало для меня. Я надеюсь, что это поможет и другим.

0
Android is everything for me