Как добавить проект библиотеки в 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
Для этого перейдите к File
→ Import module
и выберите местоположение, описанное выше, или местоположение вашего проекта библиотеки.
Затем используйте правильную опцию между модулем Create из существующих источников или модулем импорта из внешней модели. В моем случае это из существующих источников.
Android Studio обнаруживает каталоги src/res, насколько это хорошо.
Он также обнаруживает каталоги библиотек, которые сохранят ваш ручной импорт любой банки, которую вы можете иметь в lib/(например, google-play-services.jar в моем случае).
[EDIT: он фактически сохраняет вас только в половине случаев, потому что он создает библиотеки, но не связывает их в зависимостях вашего модуля]
2. Обновите зависимости основного модуля - Модуль библиотеки
Теперь сложная часть состоит в том, что вы создали только модуль, не связанный с вашим проектом как зависимость.
Сделайте это, перейдите к File
→ Project structure
→ Modules
Выберите свой основной модуль, карты в моем случае и перейдите на вкладку 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/
- приложение /
- библиотеки /
Мы можем идентифицировать 3 проекта. Gradle будет ссылаться на них со следующим именем:
- : приложение
- : библиотеки: lib1
- : библиотеки: lib2
Проект приложения, вероятно, будет зависеть от библиотек, и это делается путем объявления следующих зависимостей:
dependencies {
compile project(':libraries:lib1')
}