Как добавить проект библиотеки в Android Studio и использовать его? (Некоторые из них не вступили в силу)

Как добавить проект библиотеки в Android Studio и использовать его? (Некоторые заданные вопросы не вступают в силу) Я пытаюсь найти ответ на Как добавить проект библиотеки в Android Studio? или Как импортировать относительный проект с Android Студия (не банка). Но он не работает. Он также говорит: "Ошибка получения родительского элемента для объекта: ресурс не найден, который соответствует указанному имени" Theme.Sherlock.Light "." и др.

Мои инструменты sdk rev - 22.

Ответ 1

Я покажу вам, как это сделать с образцом карты.

Предположим, вы импортировали образец карты в Android Studio и создали соответствующий модуль карт.

1. Создание модуля библиотеки андроида

Вам нужно создать дополнительный библиотечный модуль для GMS, который включает в себя все классы, необходимые для примера карты из Google API, для компиляции вашего модуля карты.

Проект библиотеки находится по адресу:

$ANDROID_SDK/extras/google/google_play_services/libproject/google-play-services_lib

Для этого перейдите к FileImport module и выберите местоположение, описанное выше, или местоположение вашего проекта библиотеки.

Затем используйте правильную опцию между модулем Create из существующих источников или модулем импорта из внешней модели. В моем случае это из существующих источников.

Android Studio обнаруживает каталоги src/res, насколько это хорошо.

Он также обнаруживает каталоги библиотек, которые сохранят ваш ручной импорт любой банки, которую вы можете иметь в lib/(например, google-play-services.jar в моем случае).

[EDIT: он фактически сохраняет вас только в половине случаев, потому что он создает библиотеки, но не связывает их в зависимостях вашего модуля]

2. Обновите зависимости основного модуля - Модуль библиотеки

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

Сделайте это, перейдите к FileProject structureModules

Выберите свой основной модуль, карты в моем случае и перейдите на вкладку dependencies справа. Нажмите + и 3. Module dependency.

Выберите модуль, от которого зависит ваш основной модуль, и нажмите "ОК".

3. Обновите зависимости основного модуля - Jars

Теперь по необъяснимой причине действия в моем модуле карт по-прежнему не могут найти классы API. Мне также необходимо вручную добавить зависимость google-play-services.jar с конфигурацией модуля (как в 2., но выберите "Библиотека вместо зависимости от модуля" );

Эта точка, безусловно, может быть автоматизирована с помощью gradle, но я еще не изучил ее. Когда вы используете новую среду IDE, чем меньше инструментов вы используете, тем легче отслеживать ошибки конфигурации. Я бы предложил добавить только один инструмент за раз:)

Ответ 2

Следующие шаги работали для меня в Android Studio 1.3.1

mylib1 находится в автономном проекте.

В моем проекте, который нуждается в mylib1

1) Изменить settings.gradle файл

include ':app'
include ':mylib1' ##New line
project(':mylib1').projectDir = new File('../../android_lib_repo/mylib1/app/') ##New line

где ../../android_lib_repo/mylib1 - это каталог проекта

где ../../android_lib_repo/mylib1/app/ - это каталог модуля

2) Редактировать файл build.gradle

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'org.bouncycastle:bcprov-jdk16:1.46'
    compile 'com.google.android.gms:play-services:6.5.87'
    compile 'com.android.support:appcompat-v7:21.0.3'
    compile 'com.android.support:support-v4:21.0.3'
    compile project(':mylib1') ##New line
}

Ответ 3

После импорта модуля "library" в вашем проекте (из того, что я понял до сих пор, ваше рабочее пространство - это проект, а проекты - это модули в студии intellij/Android),

  • Перейдите к File -> Project structure -> Modules или select the project and hit F4.-> Modules
  • Выберите ваш модуль "библиотека" (в среднем столбце) и нажмите вкладку зависимостей (в правой колонке)
  • Установите флажок (Экспорт) перед именем модуля. (Проверить)
  • Теперь выберите "ваш" модуль и щелкните знак "+" в левой панели и выберите "3. Зависимости модулей...", выберите проект "Библиотека" и нажмите "ОК".
  • Скомпилируйте свои модули сейчас.

Если вы по-прежнему видите ошибки в своем проекте, говорящие, что не можете найти классы из проекта "library", убедитесь, что вы проверяете флажок "экспорт" напротив модуля в зависимости от вашего модуля. Надеюсь, что помогает:)

Ответ 4

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

Ответ 5

Если вы используете проект, созданный в Studio или проект, экспортированный из ADT, в Gradle, вам нужно будет отредактировать build.gradle для изменения зависимостей. Пользовательский интерфейс в диалоговом окне "Структура проекта" влияет только на зависимости в среде IDE, но воля использует Gradle, у которой не будет настроек зависимостей.

Редактирование build.gradle заставит Studio перезагрузить его, обновив зависимости в обоих местах.

Для получения дополнительной информации о зависимостях и настройке нескольких модулей (в случае, если вы также добавляете модуль как зависимость), пожалуйста, прочитайте http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Dependencies-Android-Libraries-and-Multi-project-setup

Ответ 6

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

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

MyProject/

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

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

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

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

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