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

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

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

32 ответа

Решение

Обновление для 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 в наш проект:

  1. Создайте новый проект с помощью создателя Android 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 ' синхронизировать с Gradle, Ваша библиотека должна быть доступна в вашем проекте.

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

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

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

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

Обновление для 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'

Android Studio 0.8.2


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

Первый

Модуль -> Импорт модуля

второй

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

В третьих

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

вперед

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

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

Для Шерлока, может быть, вы хотите удалить их тестовый каталог или добавить 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).

Я бы посчитал необходимым прочесть зависимости, библиотеки 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.

В настоящее время я использую подмодули git, чтобы связать вложенную библиотеку с реальной библиотекой git repo, чтобы избежать беспорядка зависимостей.

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

Это для Android Studio 1.1.0.

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

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

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

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

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

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

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

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

    Добавить библиотечный модуль

  5. ???

  6. прибыль

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

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

    include ':facebook'
    
    project(':facebook').projectDir = new File(settingsDir, '../dependencies/FacebookSDK')
    
  2. В разделе зависимостей 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). Возможно, эта функция будет доступна в следующих версиях.

Вариант 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 + щелкните модуль, к которому вы хотите добавить зависимость, и выберите "Открыть настройки модуля".

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

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

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

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

Источник

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

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

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

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

Вот так у меня работает в 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')
    ...
}

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

  1. Нажмите F4, чтобы отобразить " Структура проекта", нажмите "Библиотеки" или "Глобальные библиотеки" и нажмите " +", чтобы добавить файл JAR.
  2. Нажмите Модули, что вы хотите добавить jar, выберите вкладку Зависимости, нажмите + и добавьте библиотеку.

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

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

Мой проект/

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

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

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

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

dependencies {
    compile project(':libraries:lib1')
}

Android Studio 3.0

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

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

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

Первый способ Это работает для MacBook.

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

Введите описание изображения здесь

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

Введите описание изображения здесь

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

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

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

Введите описание изображения здесь

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

Введите описание изображения здесь

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

Введите описание изображения здесь

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Пример успешного добавления другой библиотеки (PullToRefresh). Также работает для АБС libproject.

Это ТАК Вопрос

Эта почта

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

repositories {
    mavenCentral()
}

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

allprojects {
    repositories {
        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
    }

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

По сути, вы можете включать файлы JAR тремя различными способами. Последней является удаленная библиотека, которая использует https://bintray.com/ jcenter онлайн-репозиторий. Но если вы сделаете это одним из двух других способов, файл JAR будет физически включен в ваш проект. Пожалуйста, прочитайте эту ссылку /questions/18856581/dobavlenie-vneshnej-biblioteki-v-studiyu-android/18856588#18856588 для получения дополнительной информации. В этом посте я объяснил, как импортировать файл JAR в Android Studio, и объяснил все возможные способы.

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

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

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

Для Android Studio:

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

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

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

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

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

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

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

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

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

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

Примените изменения и нажмите кнопку ОК.

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

Вы можете использовать Gradle dependency configuration [About], чтобы добавить зависимость в ваш проект.

<имя_модуля>/build.gradle

      dependencies {
  //<gradle_dependency_configuration> '<dependency_name>:<dependency_version>'
  //e.g.
  implementation 'com.android.support:appcompat-v7:1.1.1'
}
Другие вопросы по тегам