Лучший способ интеграции сторонней библиотеки в Android Studio

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

  • Скопируйте исходный код и файлы ресурсов в наш собственный проект. Нам нужно изменить много кодов (имя пакета, имя в xml и т. Д.)
  • Если предоставляются файлы jar, я просто создаю папку libs для своего проекта и копирую файлы jar внутри. И добавьте jar-файл в зависимости настроек модуля. Но, к сожалению, я получил много сообщений об ошибках типа "Gradle: пакет com.google.gson не существует".

Существует ли общее правило для добавления сторонних исходных или jar-файлов в существующий проект студии android? Спасибо

4 ответа

Решение

Я предпочитаю использовать центральный репозиторий для управления зависимостями. Таким образом, для 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 Central не так много библиотек, и вы должны приложить некоторые усилия, чтобы использовать их в своем проекте
  • Вы могли бы намного проще получить сообщение об ошибке "класс уже добавлен" во время дексирования с подходом центрального репозитория.
  • Вы можете смешивать использование зависимостей из центрального репозитория и из папки lib, но я предпочитаю использовать только один способ для простоты
  1. Положите банку Gson (в моем случае, gson-2.2.4.jar) в папку libs
  2. Щелкните правой кнопкой мыши и выберите "Добавить как библиотеку".
  3. Убедиться, что compile files('libs/gson-2.2.4.jar') в вашем build.gradle файл
  4. Сделайте чистую сборку (вы, вероятно, можете сделать это нормально в Android Studio, но чтобы убедиться, что я перешел в терминал к корневой папке моего приложения и набрал gradlew clean, Я на Mac OS X, команда может отличаться в вашей системе

Эта серия шагов была взята из Android Studio: Добавить банку в качестве библиотеки? и не мой оригинальный ответ. Я снова публикую их здесь, потому что ваш вопрос был третьим в результатах поиска в Google при поиске этой же темы. Отсюда и копирование.

Все кредиты тому, кто написал шаги.

Скачать и скопировать .jar файл в libs затем добавьте одну строку в build.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

Загрузите и скопируйте свой jar-файл в папку libs, затем добавьте следующее в файл app.gradle и SYNC.

dependencies {
     compile 'com.google.code.gson:gson:{version_you_need}'
}

repositories{
  flatDir{
      dirs 'libs'
  }
}
Другие вопросы по тегам