Я создал проект Android и добавил внешний JAR (hessian-4.0.1.jar) в свой проект. Затем я добавил JAR к пути сборки и проверил его в Order and Export.
Заказ и экспорт игнорируются, кажется, и все классы из внешнего JAR отсутствуют во время выполнения.
Есть ли уловка для правильного включения необходимых классов из внешнего JAR при создании приложения Android с использованием плагина Eclipse? Я не хочу использовать ant или Maven.
Eclipse
Хороший способ добавить внешние JAR в ваш проект Android или любой проект Java:
libs
в корневой папке проектаlibs
Теперь щелкните правой кнопкой мыши на файле Jar и выберите "Путь сборки" > "Добавить в сборку" Путь, который создаст папку под названием "Связанные библиотеки" в вашем Проект
Сделав это, , вы не будете потеряйте свои библиотеки, на которые ссылаются ваши жесткий диск, когда вы переносите проект на другой компьютер.
****** Обновить *******
Шаг для добавления внешней библиотеки в Android Studio
Обратите внимание: Если вы используете сторонние библиотеки, тогда лучше использовать транзитивные зависимости, где Gradle script автоматически загружает JAR и JAR зависимостей когда выполняется Gradle script.
Ex: compile 'com.google.android.gms: play-services-ads: 9.4.0'
Подробнее о Gradle Масштабирование зависимостей
libs
(вместо lib
)
Да, вы можете использовать его. Вот как:
Этот видео может быть полезен, если у вас есть некоторые проблемы.
Я знаю, что OP заканчивает свой вопрос ссылкой на плагин Eclipse, но я пришел сюда с поиском, который не указал Eclipse. Итак, здесь идет Android Studio:
jar
файл в каталог libs (например, скопировать/вставить)jar
и выберите "Добавить как библиотеку..." Что это!
В настоящее время я использую SDK 20.0.3, и ни один из предыдущих решений не работал у меня.
Причина, по которой hessdroid работает там, где произошла ошибка, состоит в том, что два файла jar содержат java, который скомпилирован для разных виртуальных машин. Байт-код, созданный компилятором Java, не может быть запущен на виртуальной машине Dalvik. Байт-код, созданный компилятором Android, не может быть запущен на виртуальной машине Java.
В моем случае я имел доступ к исходному коду и смог создать для него файл jar для Android с помощью метода, который я описал здесь: https://stackoverflow.com/questions/8678630/noclassdeffounderror-for-code-in-an-java-library-on-android
Оказывается, я не выглядел достаточно хорошо для своей трассировки стека, проблема не в том, что внешний JAR не включен.
Проблема в том, что на платформе Android отсутствует javax.naming. * и многие другие пакеты, которые также имеют внешние JAR-зависимости.
Добавление внешних JAR файлов и установка Order and Export в Eclipse работает как ожидается в проектах Android.
Перейти к текущему проекту
RightClick- > Properties- > Java Build Path- > Добавить файлы Jar в библиотеки → Нажмите OK
Затем он добавляется в файл ссылочных библиотек в вашем текущем проекте.
Если вы используете систему gradle, выполните следующие действия:
поместите jar
файлы в соответствующую папку libs
вашего приложения для Android. Вы обычно найдете его в Project
> app
> libs
. Если папка libs
отсутствует, создайте ее.
добавьте это в свой 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')
в студии android при использовании gradle
добавить это в build.gradle
compile fileTree(dir: 'libs', include: ['*.jar'])
и добавьте файл jar в папку libs
Если вы используете Android Studio, выполните следующие действия (я скопировал и изменил ответ @Vinayak Bs):
- Выберите представление Project в боковой панели проекта (вместо пакетов или Android).
- Создайте папку libs в корневой папке проекта
- Скопируйте файлы JAR в папку libs
- Боковой обзор будет обновлен, и файлы JAR будут отображаться в вашем проекте.
- Теперь щелкните правой кнопкой мыши на каждый файл JAR, который вы хотите импортировать, а затем выберите "Добавить как библиотеку...", который будет включать его в ваш проект.
- После этого все, что вам нужно сделать, это ссылки на новые классы в вашем коде, например.
import javax.mail.*
Android Java API не поддерживает javax.naming. * и многие другие javax. * stuff. Вы должны включать зависимости как отдельные банки.
Копирование файла .jar в папку проекта Android не всегда возможно.
Особенно, если это результат другого проекта в вашем рабочем пространстве и он постоянно обновляется.
Чтобы решить эту проблему, вам придется добавить банку в качестве связанного файла в свой проект, вместо того, чтобы импортировать его (который будет скопировать его локально).
В пользовательском интерфейсе выберите:
Проект → Импорт → Файловая система → yourjar.jar → (Область параметров) Дополнительно → Создать ссылку в рабочей области.
Ссылка сохраняется в файле .project:
<linkedResources>
<link>
<name>yourjar.jar</name>
<type>1</type>
<locationURI>PARENT-5-PROJECT_LOC/bin/android_ndk10d_armeabi-v7a/yourjar.jar</locationURI>
</link>
</linkedResources>
PARENT-5-PROJECT_LOC
означает относительно файла проекта, 5 каталогов вверх (../../../../../).
Затем добавьте его в библиотеки:
Проект → Свойства → Путь сборки Java → Библиотеки → Добавить Jar → yourjar.jar
В этом же окне выберите вкладку Заказ и Экспорт и отметьте свою банку, чтобы она была добавлена в apk.
создать папку (например, lib) внутри вашего проекта, скопировать банку в эту папку. теперь перейдите, чтобы настроить путь сборки, щелкнув правой кнопкой мыши по проекту, в пути сборки выберите
"добавить jar" перейдите к созданной папке и выберите банку.