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

283

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

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

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

Теги:
android-studio
build.gradle
class-library

12 ответов

412

Eclipse

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

  • Создайте папку с именем libs в корневой папке проекта
  • Скопируйте файлы JAR в папку libs
  • Теперь щелкните правой кнопкой мыши на файле Jar и выберите "Путь сборки" > "Добавить в сборку" Путь, который создаст папку под названием "Связанные библиотеки" в вашем Проект

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

****** Обновить *******

Шаг для добавления внешней библиотеки в Android Studio

  • Если вы находитесь в Android View в проводнике проекта, измените его на вид проекта, как показано ниже.

Изображение 2858

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

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

Ex: compile 'com.google.android.gms: play-services-ads: 9.4.0'

Подробнее о Gradle Масштабирование зависимостей

  • 49
    Обратите внимание, что при использовании последних версий Eclipse / ADT внешние jar-файлы должны находиться в папке с именем libs (вместо lib )
  • 4
    @ THelper - Спасибо! Вы правы, папка должна называться "libs", а не "lib". Я бился головой об эту проблему.
Показать ещё 8 комментариев
135

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

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

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

  • 1
    Это было единственное, что сработало для меня, я перепробовал все ответы с более высоким рейтингом.
  • 0
    вау .. этот работал отлично. Голосование вверх.
Показать ещё 4 комментария
5

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

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

Что это!

5

В настоящее время я использую 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

4

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

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

Добавление внешних JAR файлов и установка Order and Export в Eclipse работает как ожидается в проектах Android.

3

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

RightClick- > Properties- > Java Build Path- > Добавить файлы Jar в библиотеки → Нажмите OK

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

1

Если вы используете систему 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')

1

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

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

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

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

1

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

  •   
  • Выберите представление Project в боковой панели проекта (вместо пакетов или Android).  
  • Создайте папку libs в корневой папке проекта  
  • Скопируйте файлы JAR в папку libs  
  • Боковой обзор будет обновлен, и файлы JAR будут отображаться в вашем проекте.  
  • Теперь щелкните правой кнопкой мыши на каждый файл JAR, который вы хотите импортировать, а затем выберите "Добавить как библиотеку...", который будет включать его в ваш проект.  
  • После этого все, что вам нужно сделать, это ссылки на новые классы в вашем коде, например. import javax.mail.*  
1

Android Java API не поддерживает javax.naming. * и многие другие javax. * stuff. Вы должны включать зависимости как отдельные банки.

0

Копирование файла .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.

0

создать папку (например, lib) внутри вашего проекта, скопировать банку в эту папку. теперь перейдите, чтобы настроить путь сборки, щелкнув правой кнопкой мыши по проекту, в пути сборки выберите

"добавить jar" перейдите к созданной папке и выберите банку.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню