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

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

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

30 ответов


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

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

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

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

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

добавить библиотека

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

  1. создайте новый проект с помощью Android Studio creator. Я назвал его 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. вставьте свою библиотеку во вновь созданную . В этом примере я использовал библиотека 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. изменить настройки.gradle, добавив свою библиотеку в include. Если вы используйте пользовательский путь, как и я, вы также должны определить каталог проекта для нашей библиотеки. Целые настройки.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: как сказал Ксавье Дюкроэ:

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

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


вот визуальное руководство:

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

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

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

ошибка: редакция инструментов построения SDK (xx.X. x) слишком низко. Минимальный требуется yy.г.г

открой на ->Структура Проекта...:

First

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

Second

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

Third

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

Forth


использовать меню ->Структура Проекта ->модули.

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

для Шерлока, возможно, вы хотите удалить их тестовый каталог или добавить в classpath.

чтобы импортировать библиотеку с помощью gradle, вы можете добавить ее в вашего 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 меняющийся.

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


Я считаю зависимости, библиотеки Android и настройка нескольких проектов необходимое значение. Пожалуйста, уделите этому несколько минут.

в частности, в случае проекта библиотеки без jar прочитайте следующий фрагмент из вышеуказанного источника:

проекты Gradle также могут зависеть от других проектов gradle с помощью настройки нескольких проектов. Настройка нескольких проектов обычно работает, имея все проекты в качестве вложенных папок данного корня проект.

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

MyProject/
 + app/
 + libraries/
    + lib1/
    + lib2/

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

:app
:libraries:lib1
:libraries:lib2

каждый проект будет иметь свой собственный билд.gradle объявляет, как он строится. Кроме того, будет файл под названием settings.gradle в корне объявления проектов. Это дает следующее структура:

MyProject/
 | settings.gradle
 + app/
    | build.gradle
 + libraries/
    + lib1/
       | build.gradle
    + lib2/
       | build.gradle

содержание настройки.gradle очень просто:

include ':app', ':libraries:lib1', ':libraries:lib2'

Это определяет, какая папка на самом деле является проектом Gradle.

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

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

обратите внимание, что было мало или нет использования Android Studio GUI, чтобы это произошло.

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


Я нашел более простой способ (а не писать прямо в .gradle files).

Это для Android Studio 1.1.0.

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

    Import Existing Project

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

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

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

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

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

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

    Add library module

  5. ???

  6. прибыль


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

  1. в настройках.gradle add

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

    compile project ('facebook')
    

все, что осталось сделать, это синхронизировать проект с Gradle файлы.


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

а) скопировать *.jar файлы

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

Enter image description here

c) добавить в сборку.Gradle в:

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

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

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

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


Вариант 1: падение файлов в libs/directory проекта

соответствующие построения.затем файл gradle будет обновляться автоматически.

Вариант 2: изменить построения.gradle файл вручную

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

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

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

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

Enter image description here

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

  • Зависимость От Библиотеки
  • Зависимость От Файла
  • Зависимость Модуля

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

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

источник


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

в проекте, где вы хотите добавить внешнюю библиотеку проекта, перейдите в меню ->новая -> *импорт нового модуля**, перейдите к проекту библиотеки, который вы хотите добавить в свой проект, выберите, чтобы добавить модуль "библиотека" в свой проект. Вы получите настройки.Gradle в в ваших проектах, помимо приложения, библиотеки, что-то вроде это:

include ':app', ':library'

добавить в построить.gradle (модуль :приложение) в раздел dependencies:

скомпилировать проект (': library')

перестроить проект, и все.

*вы можете добавить столько библиотек (модулей), как вы хотите. В таком случае в настройках.gradle у вас будет:

 include ':app', ':lib1', ':lib2', ...

и в строй.Gradle в, вам необходимо иметь:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])

    // Some other dependencies...

    compile project(':lib1')
    compile project(':lib2')
    ...
}

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


  1. пресс Ф4 показать Структура Проекта, выберите библиотеки или глобальные библиотеки и нажмите + чтобы добавить файл JAR.
  2. нажмите модули, что вы хотите добавить jar, выберите зависимости tab, нажмите + и добавить библиотеку.

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

Enter image description here

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

Enter image description here

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

Enter image description here

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


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

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

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

меню ->структура проекта ->фасеток - > [имя библиотеки] - > Проверьте "библиотечный модуль".


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

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

MyProject/

  • app/
  • библиотеки/
    • lib1/
    • lib2/

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

  1. : app
  2. :библиотеки:lib1
  3. :библиотеки:lib2

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

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

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

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

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


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

Сначала выберите свой конструктор.gradle файл как данный экран:

Enter image description here

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

Enter image description here

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

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

выберите пункт меню ->новая ->Модуль Импорта...:

Enter image description here

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

Enter image description here

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

Enter image description here

нажать на кнопку готово. Теперь ваша библиотека добавлена.


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

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

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


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


Android Studio 3.0

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

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

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


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

убедитесь, что папка src является исходной папкой в структуре проекта - > модули (источники).

Enter image description here


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

Это так вопрос

этот пост


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

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

enter image description here

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

enter image description here

надеюсь, это поможет.


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

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

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

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

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

 compile ('com.fortysevendeg.swipelistview:swipelistview:1.0-SNAPSHOT@aar') {
        transitive = true
    }

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


просто импортируйте проект библиотеки Android в качестве модуля и в построить.Gradle в.

применить плагин: 'com.андроид.библиотека'

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

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

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

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


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


Для Android Studio:

Enter image description here

нажать на кнопку построить.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


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

repositories {
    mavenCentral()
}

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

allprojects {
    repositories {
        jcenter()
    }
}

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

  1. я импортирую проект библиотеки в свою IDE AndroidStudio в качестве модуля с помощью menu - > меню модуля импорта

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

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

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

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


действительно, как версии меняются, так меняется пользовательский интерфейс и параметры, доступные в меню. Прочитав большинство ответов на эти вопросы я должен был догадаться, что будет работать для Android Studio 1.1.0.

  1. с помощью мыши выберите проект на основном уровне (здесь отображается название вашего приложения).

  2. щелкните правой кнопкой мыши, и выберите пункт меню Создать, Папка, Ресурсы Папка.

  3. после создания папки assets вставьте или скопируйте в нее любой файл JAR, который вам нужен для вашей библиотеки.

  4. в главном меню Android Studio (в верхней части экрана) выберите ->Структура Проекта.

  5. затем выберите имя проекта и перейдите к зависимости tab.

  6. нажмите на знак "плюс" (+) на в левом нижнем углу диалогового окна выберите зависимость от файла.

  7. наконец, откройте недавно созданную папку assets, выберите файлы JAR, которые вы скопировали, а затем нажмите кнопку Применить и OK.

очистить и перестроить проект.