Лучший способ интеграции сторонней библиотеки в студию Android
Мы можем найти очень хорошие библиотеки с открытым исходным кодом для Android. Я хочу знать, что является лучшим способом интегрировать их в наши собственные проекты в студии Android. Вот несколько основных методов:
- Скопируйте исходный код и файлы ресурсов в наш собственный проект. Нам нужно изменить много кодов (имя пакета и имя в xml и т.д.).
- Если предоставлены файлы jar, я просто создаю папку libs для моего проекта и копирую файлы jar внутри. И добавьте файл jar в зависимости от настроек модуля. Но, к сожалению, у меня появилось много сообщений об ошибках типа "Gradle: пакет com.google.gson не существует".
Есть ли общее правило для добавления сторонних источников или файлов jar в существующий проект студии Android? Благодаря
Ответы
Ответ 1
Я предпочитаю использовать центральный репозиторий для управления зависимостями. Поэтому для зависимости gson 2.3
вы должны добавить файл build.gradle
:
-
Укажите, что вы хотите использовать центральный репозиторий maven для своей зависимости
repositories {jcenter()}
-
Добавьте compile
зависимость от gson 2.6.2
dependencies {compile 'com.google.code.gson:gson:2.6.2'}
Android Studio, а также ваш CI-сервер должны теперь легко создавать ваш проект. И вы можете продолжить разработку приложений.
Я предпочитаю использовать центральный репозиторий для управления зависимостями, потому что:
- упрощение управления областью - некоторые библиотеки предназначены только для тестирования, некоторые должны быть включены в apk, а некоторые из них являются частью рабочей среды (например, самой android.jar).
- упрощает управление транзитными зависимостями - довольно сложно собирать зависимости библиотек, и если вы используете "jar-with-dependencies", вы можете получить ошибку "класс уже добавлен" во время dexing
- облегченное хранилище и упрощенное обновление зависимостей
Примеры:
- Robolectric jar следует использовать только для модульного тестирования и не должен быть частью самого apk
- Репозиторий чист из разных папок с банками, проверка занимает гораздо меньше. Нет необходимости загружать и заменять старые банки новыми банками.
Я должен заметить:
- Не многие библиотеки находятся в центре maven, и вы должны приложить некоторые усилия, чтобы использовать их таким образом в своем проекте.
- Вы могли бы гораздо легче получить сообщение "класс уже добавлено" во время dexing с использованием централизованного репозитория
- Вы можете смешивать использование зависимостей из центрального репозитория и из папки lib, но я предпочитаю использовать только один способ для простоты
Ответ 2
- Поместите банку Gson (в моем случае,
gson-2.2.4.jar
) в папку libs
- Щелкните правой кнопкой мыши и нажмите "Добавить как библиотеку"
- Убедитесь, что
compile files('libs/gson-2.2.4.jar')
находится в вашем build.gradle
файле
- Сделайте чистую сборку (возможно, вы можете сделать это в Android Studio, но убедитесь, что я перешел в терминал в корневую папку моего приложения и набрал
gradlew clean
. Я нахожусь в Mac OS X, команда могут отличаться в вашей системе.
Эта серия шагов была взята из Android Studio: Добавить банку в качестве библиотеки? и не является моим первоначальным ответом. Я отправляю их здесь, опять же, потому что ваш вопрос был третьим в результатах поиска в Google при поиске этой же темы. Следовательно, копирование.
Все кредиты тому, кто написал этапы.
Ответ 3
Загрузите и скопируйте файл .jar
в папку libs
, а затем добавьте одну строку для сборки .gradle:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar']) ----> AS creates this
compile 'com.google.code.gson:gson:2.3.4' ----------> I added this one
}
Не забудьте нажать "Синхронизировать сейчас"
Я использую Android Studio 1.1.0
Ответ 4
Загрузите и скопируйте папку jar в папку libs, затем добавьте следующее в ваш файл app.gradle и SYNC.
dependencies {
compile 'com.google.code.gson:gson:{version_you_need}'
}
repositories{
flatDir{
dirs 'libs'
}
}