Как я могу использовать внешние JAR-файлы в проекте Android? - PullRequest
323 голосов
/ 26 августа 2009

Я создал проект Android и добавил внешний JAR (hessian-4.0.1.jar) в свой проект. Затем я добавил JAR в путь сборки и отметил его в Order and Export.

Похоже, что порядок и экспорт игнорируются, и все классы из внешнего JAR отсутствуют во время выполнения.

Есть ли хитрость для правильного включения необходимых классов из внешнего JAR при создании приложения для Android с использованием плагина Eclipse? Я не хочу использовать муравья или мавена.

Ответы [ 12 ]

440 голосов
/ 28 июля 2011

для Eclipse

Хороший способ добавить внешние JAR-файлы в ваш проект Android или любой проект Java:

  1. Создайте папку с именем libs в корневой папке вашего проекта
  2. Скопируйте файлы JAR в папку libs
  3. Теперь щелкните правой кнопкой мыши файл Jar и выберите «Путь сборки»> «Добавить в сборку». Путь , который создаст папку «Библиотеки со ссылками» внутри вашего Проект

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

Для Android Studio

  1. Если вы используете Android Просмотр в проводнике проекта, измените его на Project , как показано ниже

Missing Image

  1. Щелкните правой кнопкой мыши нужный модуль, в который вы хотите добавить внешнюю библиотеку, затем выберите New> Directroy и назовите его как ' libs '
  2. Теперь скопируйте blah_blah.jar в папку libs '
  3. Щелкните правой кнопкой мыши blah_blah.jar, затем выберите « Добавить как библиотеку .. ». Это автоматически добавит и введет в build.gradle как файлы компиляции ('libs / blah_blah.jar') и синхронизирует gradle. И все готово

Обратите внимание: Если вы используете сторонние библиотеки, то лучше использовать транзитивные зависимости , где скрипт Gradle автоматически загружает JAR и JAR зависимостей при запуске скрипта gradle.

Например: compile 'com.google.android.gms: play-services-ads: 9.4.0'

Подробнее о Управление зависимостями Gradle

127 голосов
/ 27 августа 2009

Да, вы можете использовать его. Вот как:

  1. Ваш проект -> щелкните правой кнопкой мыши -> Импорт -> Файловая система -> yourjar.jar
  2. Ваш проект -> щелкните правой кнопкой мыши -> Свойства -> Путь сборки Java -> Библиотеки -> Добавить Jar -> yourjar.jar

Это видео может быть полезно в случае возникновения проблем.

5 голосов
/ 09 июня 2013

Я знаю, что ОП заканчивает свой вопрос ссылкой на плагин Eclipse, но я прибыл сюда с поиском, который не определил Eclipse. Итак, что касается Android Studio:

  1. Добавить jar файл в каталог libs (например, скопировать / вставить)
  2. Щелкните правой кнопкой мыши файл jar и выберите «Добавить как библиотеку ...»
  3. нажмите «ОК» в следующем диалоговом окне или переименуйте, если вы решите.

Вот и все!

5 голосов
/ 30 октября 2012

В настоящее время я использую SDK 20.0.3, и ни одно из предыдущих решений не помогло мне.

Причина, по которой hessdroid работает там, где произошел сбой hess, заключается в том, что два jar-файла содержат java, скомпилированный для разных виртуальных машин. Байт-код, созданный компилятором Java, не гарантированно выполняется на виртуальной машине Dalvik. Байт-код, созданный компилятором Android, не обязательно будет работать на виртуальной машине Java.

В моем случае я имел доступ к исходному коду и смог создать для него файл jar для Android, используя метод, который я описал здесь: https://stackoverflow.com/a/13144382/545064

4 голосов
/ 27 августа 2009

Оказывается, я недостаточно хорошо выглядел на трассировке стека, проблема не в том, что внешний JAR не включен.

Проблема в том, что на платформе Android отсутствует javax.naming. * И многие другие пакеты, от которых также зависит внешний JAR-файл.

Добавление внешних файлов JAR и настройка порядка и экспорта в Eclipse работает, как и ожидалось, в проектах Android.

3 голосов
/ 03 июля 2012

Перейти к текущему проекту

RightClick-> Properties-> Java Build Path-> Add Jar Files в библиотеки -> Нажмите OK

Затем он добавляется в файл ссылочных библиотек в вашем текущем проекте.

1 голос
/ 30 марта 2016

Если вы используете систему сборки gradle , выполните следующие действия:

  1. поместите jar файлы в соответствующую папку libs вашего приложения для Android. Обычно вы найдете его в Project> app> libs. Если папка libs отсутствует, создайте ее.

  2. добавьте это к вашему build.gradle файлу app. (Не для ваших Project build.gradle)

    dependencies {
        compile fileTree(dir: 'libs', include: '*.jar')
        // other dependencies
    }
    

    Это будет включать все ваши jar файлы, доступные в папке libs.

Если вы не хотите включать все jar файлы, вы можете добавить их по отдельности.

compile fileTree(dir: 'libs', include: 'file.jar')

1 голос
/ 30 августа 2015

в андроид студии при использовании gradle

добавить это в build.gradle

compile fileTree(dir: 'libs', include: ['*.jar'])

и добавьте файл jar в папку libs

1 голос
/ 06 февраля 2015

Если вы используете Android Studio, сделайте следующее (я скопировал и изменил ответ @Vinayak Bs):

  1. Выберите вид проекта в виде сбоку проекта (вместо пакетов или Android)
  2. Создайте папку с именем libs в корневой папке вашего проекта
  3. Скопируйте файлы JAR в папку libs
  4. Вид сбоку будет обновлен, и файлы JAR будут отображаться в вашем проекте
  5. Теперь щелкните правой кнопкой мыши по каждому файлу JAR, который вы хотите импортировать, и выберите «Добавить как библиотеку ...», чтобы включить его в ваш проект
  6. После этого все, что вам нужно сделать, это сослаться на новые классы в вашем коде, например. import javax.mail.*
1 голос
/ 24 ноября 2010

Java API Android не поддерживает javax.naming. * И многие другие javax. * Вещи. Вы должны включить зависимости в виде отдельных jar-файлов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...