Лучший способ интеграции сторонней библиотеки в студию 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'
  }
}