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

Alexander Kulyakhtin 08/22/2017. 29 answers, 544.786 views
android android actionbarsherlock android-library android-studio android-studio

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

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

4 Comments
25 Daniel Smith 05/21/2013
да, выясняя, что это было более запутанным, чем должно было быть ... не так, как будто это было лучше в затмении.
3 user1785900 01/19/2014
Видеоролик YouTube How to Add Libraries to Android Studio объясняет этот процесс.
1 craned 10/16/2014
Если вы используете Gradle , см. Этот ответ StackOverflow .
1 Simon 12/20/2014
Вот видео, которое я нашел действительно полезным: youtube.com/watch?v=1MyBO9z7ojk

29 Answers


froger_mcs 05/23/2017.

Update for 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'
} зависимостей { dependencies {
     compile 'com.jakewharton:butterknife:6.0.0'
} 

Adding the library

Вот полный процесс добавления внешней библиотеки 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, добавив в него вашу библиотеку. Если вы используете собственный путь, как я, вам также нужно определить каталог проекта для нашей библиотеки. Целые настройки.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")
    } зависимостей { dependencies {
        compile fileTree(dir: 'libs', include: ['*.jar'])
        compile 'com.android.support:appcompat-v7:21.0.3'
        compile project(":PagerSlidingTabStrip")
    } compile fileTree (dir: 'libs', include: ['* .jar']) dependencies {
        compile fileTree(dir: 'libs', include: ['*.jar'])
        compile 'com.android.support:appcompat-v7:21.0.3'
        compile project(":PagerSlidingTabStrip")
    } compile 'com.android.support:appcompat-v7:21.0.3' 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")
    } зависимостей { dependencies {
        compile fileTree(dir: 'libs', include: ['*.jar'])
        compile 'com.android.support:appcompat-v7:21.0.3'

        compile project(":libs:PagerSlidingTabStrip")
    } compile fileTree (dir: 'libs', include: ['* .jar']) dependencies {
        compile fileTree(dir: 'libs', include: ['*.jar'])
        compile 'com.android.support:appcompat-v7:21.0.3'

        compile project(":libs:PagerSlidingTabStrip")
    } compile 'com.android.support:appcompat-v7:21.0.3' 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']
                }
            }
        } применить плагин: 'com.android.library' 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']
                }
            }
        } зависимостей { 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']
                }
            }
        } android { 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']
                }
            }
        } defaultConfig { 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']
                }
            }
        } targetSdkVersion 21 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']
                }
            }
        } sourceSets { 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']
                }
            }
        } java.srcDirs = ['src'] 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']
                }
            }
        } res.srcDirs = ['res'] 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 (в модулях приложений и библиотек), как 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)
        }
    }
    //... android { //...
    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)
        }
    }
    //... defaultConfig { //...
    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 Build System - отличная презентация о создании приложений для Android с системой Gradle Build: как сказал Ксавье Дюкроэт:

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

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

5 comments
6 victor n. 05/24/2013
Эй, ты прекрасно объяснил реальную проблему. голосуя за ваш ответ, чтобы другие могли его увидеть. одна незначительная вещь, которая не работает на моей стороне, ссылается на библиотеку поддержки в build.gradle зависимости. как выясняется: «Project / libs ...» по какой-то причине не работает. Мне пришлось покончить с идентификацией проекта. поэтому 'libs / ...'. и он составлен отлично. одна из них заключается в том, что эти два способа ссылки на пути или проекты сбивают с толку. Надеюсь, в будущем появится простая и унифицированная схема. нет причин, по которым исходное решение не сработает.
9 Akbar ibrahim 05/24/2013
+1. Долго боролся с этим. Как сказал victor n , ссылка на бачок поддержки основного проекта из модуля actionbarsherlock не работает. Я должен был сделать следующее, чтобы заставить его работать ... (1) Удалить файлы компиляции ('libs / android-support-v4.jar') из build.gradle проекта. Основной модуль должен только компилировать проект («: libraries: actionbarsherlock») . (2) Добавить компилировать файлы ('libs / android-support-v4.jar') вместо компиляции файлов (': HelloWorld / libs / android-support-v4.jar') в build.gradle actionbarsherlock.
8 alicanbatur 11/07/2013
Почему у меня нет раздела «Импорт модуля», по которому вы направляете нас? Я использую Android Studio 0.3.1
5 amalBit 02/08/2014
Опция модуля импорта отсутствует!
147 Kyle Gobel 10/19/2014
Почему это так чертовски путает ?!

Sam Rad 07/01/2016.

Вот визуальный гид:

Update для Android Studio 0.8.2:

В Android Studio 0.8.2 перейдите в Project Structure -> в разделе« Modules просто нажмите кнопку« плюс »и выберите« Import Existing Project и импортируйте« actionbarsherlock . Затем синхронизируйте файлы Gradle.

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

Ошибка. Версия SDK Build Tools (xx.xx) слишком низкая. Минимальное значение - yy.yy

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

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

Android Studio 0.8.2


File меню -> Project Structure... :

Первый

Module -> Import Module

второй

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

В третьих

Затем выберите imported module :

вперед

5 comments
29 amalBit 02/08/2014
Опция модуля импорта недоступна в Android Studio4.3
3 toobsco42 08/25/2014
Ключом для выполнения этой работы и устранения ошибок, которые не были найдены, был шаг. Select your project module and add dependency dependencies { // ... compile project(':library') }
6 Rémy DAVID 10/06/2014
Это скопирует библиотечный модуль в ваш проект, который вам не нужен, если вы хотите, чтобы общая база кода делилась между несколькими проектами
CCJ 11/13/2015
@amalBit ... ты из будущего? Но серьезно, они должны сделать это просто, как в Eclipse ADT; кто хочет ударить стороннее репо и скомпилировать (потенциально) произвольный код в каждую сборку? Это серьезно подрывает протоколы контроля качества и кода
amalBit 11/17/2015
Это было в бета-версии Android-студии 0.4.3. Что касается присоединения стороннего репо, скажите, не используйте +. Просто укажите версию u want. Если вы все еще не доверяете ему достаточно, u можете создать банку (или клонировать) любого репо и использовать ее.

Blackbelt 07/01/2016.

Используйте меню File -> Project Structure -> Modules .

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

Для Шерлока, возможно, вы хотите удалить их тестовый каталог или добавить файл junit.jar в 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'
} зависимостей { dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:22.1.0'
    compile 'com.actionbarsherlock:actionbarsherlock:4.4.0@aar'
} compile fileTree (dir: 'libs', include: ['* .jar']) 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).

5 comments
1 Alexander Kulyakhtin 05/16/2013
Хм, он все еще говорит, что android-apt-compiler: styles.xml: 5: error: Ошибка получения родительского элемента: не найден ресурс, который соответствует указанному имени «Theme.Sherlock.Light.DarkActionBar».
Blackbelt 05/16/2013
В модуле Sherlock -> Dependecies У меня есть android 4.2.2 и поддержка библиотеки v4
Blackbelt 05/16/2013
@ ρяσѕρєяK рядом с кнопкой запуска, есть ярлык с Android. Если вы посмотрите там, вы найдете «Редактировать конфигурацию». Нажмите и под целевым устройством нажмите «Show Chooser Dialg»
7 fish 05/16/2013
Привет, у меня такая же проблема, как у Alex («Gradle: Error retrieve parent for item: не найден ресурс, который соответствует указанному имени« Theme.Sherlock.Light ».) - зависимость Java, похоже, решена правильно, IDE не обвиняет мою SherlockActivity, но по какой-то причине Gradle, похоже, не смотрит в ресурсы ABS. Есть идеи?
4 Konrad Morawski 09/15/2013
На Android Studio 0.2.8 в окне « Project Structure отсутствует раздел « Modules ».

Jonathan Lin 10/14/2013.

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

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

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

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

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 

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

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

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

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

dependencies {
    compile project(':libraries:lib1')
} зависимостей { dependencies {
    compile project(':libraries:lib1')
} 

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

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

4 comments
Jonathan Lin 10/14/2013
Если вы сочтете это полезным, пожалуйста, воздержитесь, чтобы другие могли избежать боли и двигаться быстрее.
RichieHH 03/24/2014
Очень полезно и, что более важно, не играть в капризы дня.
1 dcunited001 04/20/2014
Большое вам спасибо за то, что вы включили единственный ответ, который имеет смысл. каждый другой ответ устарел и просто не работает. я даже не пробовал CS в Virginia Tech, потому что все первые два года учились fckn нажимать на eclipse. он не делал никакого смысла fckn, но видел результат gradle случайных щелчков в IDE.
velis 06/01/2015
Спасибо за подсказку подгузника git. Раньше я использовал соединение, но теперь переключился на внешние SVN. Работает как шарм.

René Michel 07/01/2016.

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

Это для Android Studio 1.1.0.

  1. File меню -> New Module... :

    Импорт существующего проекта

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

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

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

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

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

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

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

  5. ???

  6. прибыль


Vilen 07/01/2016.

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

  1. В settings.gradle add

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

    compile project ('facebook') 

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

4 comments
Rajnish Mishra 03/23/2015
Привет, Вилен, что такое настройки.
Vilen 04/02/2015
Привет, Раджниш. Из документации: settingsDir Возвращает каталог настроек сборки. Каталог настроек - это каталог, содержащий файл настроек. Возвраты: каталог настроек. Никогда не возвращает null.
Rajnish Mishra 04/03/2015
Две точки перед / зависимостями важнее заботиться. Ваш ответ мне очень помогает. Спасибо.
Solata 11/18/2015
NOTE: для оценки строки в градиенте вы должны использовать двойную кавычку («). Это« сохранить день »для меня.

Eugene Bosikov 07/01/2016.

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

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

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

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

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

dependencies {
    ...
    compile files('libs/ScanAPIAndroid.jar', 'libs/ScanAPIFactoryAndroid.jar', .., ..)
} зависимостей { dependencies {
    ...
    compile files('libs/ScanAPIAndroid.jar', 'libs/ScanAPIFactoryAndroid.jar', .., ..)
} 

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

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

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


pathe.kiran 06/27/2016.

Вариант 1: распаковать файлы в каталог / каталог проекта

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

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

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

dependencies {
     compile fileTree(dir: 'libs', include: ['*.jar'])
     compile 'com.google.android.gms:play-services:6.5.+'
   } зависимостей { dependencies {
     compile fileTree(dir: 'libs', include: ['*.jar'])
     compile 'com.google.android.gms:play-services:6.5.+'
   } compile fileTree (dir: 'libs', include: ['* .jar']) dependencies {
     compile fileTree(dir: 'libs', include: ['*.jar'])
     compile 'com.google.android.gms:play-services:6.5.+'
   } 

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

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

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

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

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

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

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

Источник


drewan50 07/01/2016.

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

1 comments
1 cosimo 04/01/2014
Да! Вы сэр выиграете Интернет! Благодаря! Я просто потратил пару часов своей жизни, потому что я этого не знал.

pandabear 07/01/2016.

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

В проекте, где вы хотите добавить проект внешней библиотеки, перейдите в меню File -> New -> * Импорт нового модуля **, перейдите к проекту библиотеки, который вы хотите добавить в свой проект, выберите, чтобы добавить модуль «library» в ваш проект. Вы получите settings.gradle в своих проектах, помимо приложения, включенной библиотеки, примерно так:

include ':app', ':library' 

Добавьте в build.gradle(Module :app) в разделе зависимостей:

Compile project(':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')
    ...
} зависимостей { dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])

    // Some other dependencies...

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

    // Some other dependencies...

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

Adiii 07/01/2016.

Вы можете сделать это легко. Перейдите в меню File -> New -> Import Module... :

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

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

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

Перейдите к Project Structure и добавьте Module Dependency :

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

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


Dalmas 06/27/2016.

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

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

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

File меню -> Project structure -> Facets -> [Имя библиотеки] -> Проверить «Модуль библиотеки».


crossle 07/01/2016.
  1. Нажмите F4, чтобы отобразить Project Structure , библиотеки кликов или глобальные библиотеки и нажмите +, чтобы добавить файл JAR.
  2. Нажмите «Модули», чтобы добавить банку, выберите вкладку « Dependencies », нажмите « и добавьте «Библиотека».

Shakti Malik 07/01/2016.

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

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

Мой проект/

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

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

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

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

dependencies {
    compile project(':libraries:lib1')
} зависимостей { dependencies {
    compile project(':libraries:lib1')
} 
2 comments
Alexander Kulyakhtin 05/23/2013
В самом деле? Странно, у них есть весь GUI, и все же это не рекомендуется. Как так?
Shakti Malik 05/23/2013
Поскольку редактирование через графический интерфейс не записывает эти изменения в файл build.gradle. Редактирование графического интерфейса только сохраняет изменения в собственных проектных данных IntelliJ. На данный момент это ошибка, которая будет исправлена ​​в будущих выпусках. Вы можете обратиться к этому ответу с помощью Google Android-Studio Team Lead stackoverflow.com/questions/16678447/...

Erwan 05/17/2013.

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

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

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

3 comments
christiaanderidder 05/19/2013
Я пробовал все шаги, добавляя модуль в качестве зависимости, но у меня все еще есть Gradle: Error retrieving parent for item: No resource found that matches the given name 'Theme.Sherlock.Light'. , Похоже, что мой основной проект не видит ресурсов библиотечного проекта (АБС). Однако IDE распознает ссылки на классы и ресурсы. Скриншот
Calvin Chan 06/04/2013
Тоже самое. Кто может это решить?
Dmitriy Tarasov 06/06/2013
Я перехожу на IDEA 13 из 12 и имею эту ошибку. Только повторный импорт для всех моих зависимостей поможет. Вручную удалите все модули, удалите связанные файлы * .iml и повторно импортируйте свои библиотеки

azh 02/09/2014.

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

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

Итак, я снова собираюсь без ошибок.


Hemant 07/01/2016.

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

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

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

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

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

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

Если вы получаете сообщение об ошибке «Project with path»: подпись-pad 'не может быть найдена в проекте': app '', то, пожалуйста, используйте второй способ:

Выберите меню File -> New -> Import Module... :

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

После нажатия на Import Module ,

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

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

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

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


Braunster 02/09/2014.

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


ankitbumblebee 07/01/2016.

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

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


passsy 05/23/2017.

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

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

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


voghDev 05/23/2017.

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

Этот вопрос

Эта почта


Mohammad 05/23/2017.

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

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

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

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

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

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


Jinu 06/27/2016.

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

В противном случае добавьте репозитории в приложение модуля боковой градации:

repositories {
        maven { url 'http://clinker.47deg.com/nexus/content/groups/public' }
} репозитории { repositories {
        maven { url 'http://clinker.47deg.com/nexus/content/groups/public' }
} 

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

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

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

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


Dharmendra Pratap 06/27/2016.

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


MAMASSI 07/01/2016.

Для Android Studio:

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

Нажмите на Build.gradle (module: app) .

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

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile files('libs/commons-io-2.4.jar')
} зависимостей { dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile files('libs/commons-io-2.4.jar')
} 

и в вашем каталоге «приложение» создайте каталог «libs». Добавьте файл yourfile.jar:

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

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

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

1 comments
Badre 03/23/2016
уважение чувака: D

Pankaj kumar 07/01/2016.

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

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

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

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

jobbert 07/01/2016.

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

repositories {
    mavenCentral()
} репозитории { repositories {
    mavenCentral()
} 

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

allprojects {
    repositories {
        jcenter()
    }
} репозитории { allprojects {
    repositories {
        jcenter()
    }
} 

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

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

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

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

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

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


monn3t 07/01/2016.

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

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

  2. Щелкните правой кнопкой мыши и выберите пункты меню « New, Folder, Assets Folder .

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

  4. В главном меню Android Studio (вверху экрана) выберите « File -> « Project Structure .

  5. Затем выберите название своего проекта и перейдите на вкладку « Dependencies ».

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

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

Очистите и перестройте свой проект.

2 comments
1 Rajnish Mishra 03/23/2015
создание копий банкоматов в активах не является хорошей идеей, это излишне увеличит размер apk
monn3t 04/12/2015
Спасибо за совет @ RajnishMishra. Я подозревал это, но что вы предлагаете вместо этого?

Related questions

Hot questions

Language

Popular Tags