Android Studio: добавить jar в качестве библиотеки?
Я пытаюсь использовать новую Android Studio, но не могу заставить ее работать правильно.
Я использую библиотеку Gson для сериализации/десериализации JSON-объектов. Но библиотека как-то не включена в сборку.
Я создал новый проект только с MainActivity. Скопировал gson-2.2.3.jar в папку /libs и добавил его в качестве зависимости библиотеки (справа click-> Добавить как библиотеку). Это включает в себя jar в Android Studio, так что на него можно ссылаться из исходных файлов.
Когда я пытаюсь запустить проект, он не может скомпилироваться, поэтому я добавил:
compile files('libs/gson-2.2.3.jar')
к зависимостям в файле de.gradle. После этого он компилируется правильно, но при запуске приложения я получаю ClassDefNotFoundException
.
Кто-нибудь знает, что я делаю не так?
Ответы
Ответ 1
Я боролся с одним и тем же в течение многих часов, пытаясь заставить банку Гсона работать не меньше. Я наконец взломал это - вот шаги, которые я сделал:
- Поместите банку Gson (в моем случае
gson-2.2.4.jar
) в папку libs
- Щелкните правой кнопкой мыши и выберите "Добавить как библиотеку".
-
Убедитесь, что compile files('libs/gson-2.2.4.jar')
находятся в вашем файле build.gradle
(или compile fileTree(dir: 'libs', include: '*.jar')
если вы используете много jar файлов. )
Редактировать: использовать implementation files('libs/gson-2.2.4.jar')
(или implementation fileTree(dir: 'libs', include: '*.jar')
) в Android Studio 3. 0+
-
Выполните чистую сборку (вы, вероятно, можете сделать это нормально в Android Studio, но чтобы убедиться, что я перешел в терминал к корневой папке моего приложения и набрал gradlew clean
. Я работаю в Mac OS X, команда может отличаться на ваша система
После того, как я сделал вышеупомянутые четыре, это начало работать хорошо. Я думаю, что шаг "Добавить как библиотеку" был тем, который я пропустил ранее, и он не работал, пока я не очистил его.
[Правка - добавлен шаг build.gradle
который также необходим, как указали другие]
Ответ 2
Вот инструкции по добавлению локального файла jar в виде библиотеки в модуль:
-
Создайте папку "libs" на верхнем уровне каталога модуля (тот же каталог, который содержит каталог "src" )
-
В build.gradle file
добавьте следующее, чтобы ваше закрытие зависимостей:
dependencies {
// ... other dependencies
compile files('libs/<your jar name here>')
}
-
Android Studio должна уже установить оболочку gradlew. В командной строке перейдите на верхний уровень вашего проекта (каталог с файлом gradlew
).
Запустите ./gradlew assemble
. Это должно скомпилировать проект с библиотекой. Возможно, вам потребуется исправить ошибки в файле build.gradle по мере необходимости.
-
Чтобы Android Studio распознала локальные файлы jar в качестве библиотек для поддержки при кодировании в среде IDE, вам нужно сделать еще несколько шагов:
4,1. Щелкните правой кнопкой мыши на модуле в левой панели и выберите Open Library Settings
.
4,2. В левой панели диалогового окна выберите Libraries
.
4,3. Нажмите знак +
над второй панелью слева → Java
4,4. Выберите свою локальную банку и добавьте ее в проект.
-
Возможно, вам понадобится выполнить вышеуказанную команду ./gradlew
еще раз
Ответ 3
В проекте щелкните правой кнопкой мыши
-> new -> module
-> import jar/AAR package
-> import select the jar file to import
-> click ok -> done
Следуйте приведенным ниже скриншотам:
1
2:
3:
Вы увидите следующее:
Ответ 4
IIRC, просто использовать "Добавить как библиотеку" недостаточно для его компиляции с проектом.
Отметьте Intellij help о добавлении библиотек в проект
Наиболее интересная вам часть:
(В File > Project Structure
) Откройте настройки модуля и выберите вкладку "Зависимости".
На вкладке "Зависимости" нажмите "Добавить" и выберите "Библиотека".
В диалоговом окне "Выбор библиотек" выберите одну или несколько библиотек и нажмите "Добавить выбранные".
Если библиотека не отображается в диалоговом окне, добавьте ее в настройки "Библиотеки", прямо под Модулями.
Вам больше не нужно добавлять compile files()
, и библиотека должна быть правильно добавлена в ваш проект.
Ответ 5
В Android Stuido мне нравится использовать Gradle для управления Gson lib.
Добавьте зависимость ниже в файле build.gradle.
repositories {mavenCentral()}
dependencies {compile 'com.google.code.gson:gson:2.2.4'}
Все в порядке.
Вы также можете увидеть этот пост.
Лучший способ интеграции сторонней библиотеки в студию Android
Ответ 6
Все эти решения устарели. Это действительно легко в Android Studio:
Файл > Новый модуль...
Следующий экран выглядит странно, например, вы выбираете какой-то виджет или что-то еще, но держите его
на первом снимке и ниже прокрутки и найдите "Импорт JAR или .AAR Package"
Затем возьмите Project Structure
из меню "Файл". В открывшемся окне выберите app
, затем выберите dependencies
, затем нажмите green plus button
, выберите module dependency
, затем выберите модуль, который вы импортировали, затем нажмите OK
Ответ 7
Простые шаги для добавления внешней библиотеки в Android Studio
- Если вы находитесь в Android View в проводнике проекта, измените его на вид проекта, как показано ниже.
- Щелкните правой кнопкой мыши нужный модуль, где вы хотите добавить внешнюю библиотеку, затем выберите "Создать" > "Directroy" и назовите его как 'LIBS'
- Теперь скопируйте blah_blah.jar в папку 'libs'
- Щелкните правой кнопкой мыши 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 Масштабирование зависимостей
Ответ 8
"компилировать файлы..." используется для меня, но не более того. после много боли, я обнаружил, что использование этого вместо этого работает:
compile fileTree(dir: 'libs', include: '*.jar')
Я понятия не имею, почему это имело значение, но, по крайней мере, проклятая вещь сейчас работает.
Ответ 9
- Загрузите файл библиотеки с веб-сайта
- Копирование из окна поиска
- Вставить в папку lib из Project Explorer
- Ctrl + Alt + Shift + S открыть структуру проекта
- Выберите вкладку "Зависимости", добавьте файл, используя +
- Панель инструментов Синхронизировать проект с файлом gradle с помощью кнопки
Это решило мою проблему. Попробуйте, если кто-нибудь захочет получить более подробную информацию, дайте мне знать.
Ответ 10
Я сделал это, просто добавив одну строку в build.gradle:
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar']) ----> AS creates this
implementation 'com.google.code.gson:gson:2.3.1' ----------> I added this one
}
Не забудьте нажать "Синхронизировать сейчас" в правом верхнем углу.
Я использую Android Studio 1.0.1.
Ответ 11
Я нашел Dependency Manager для Android Studio достаточно удобным и мощным для управления зависимостями сторонних разработчиков (например, упоминаемый здесь gson). Предоставление пошагового руководства, которое работало для меня (ПРИМЕЧАНИЕ. Эти шаги протестированы для Android Studio 1.6 и последующих версий на платформе Windows).
Шаг 1:
Goto "Build > Edit Libraries and Dependencies..." откроет диалог "Структура проекта"
Шаг 2:
Выберите "приложение", а затем выберите вкладку "Зависимости". Затем выберите "Добавить > 1 зависимость библиотеки"
Шаг 3:
Будет показан диалог "Выбор библиотеки", укажите "gson" в поиске и нажмите "кнопка поиска"
Шаг 4:
Желаемая зависимость будет отображаться в списке поиска, выберите com.google.code.gson: gson: 2.7 (это последняя версия в то время, когда я написал ответ), нажмите OK
Нажмите ОК в диалоговом окне "Структура проекта". Gradle будет соответствующим образом обновлять ваши скрипты сборки.
Надеюсь, это поможет:)
Ответ 12
1. Поместите банку (в моем случае, gson-2.2.4.jar
) в папку libs.
2. Убедитесь, что файлы компиляции (libs/gson-2.2.4.jar
) находятся в файле build.gradle.
3. Теперь нажмите "Проект синхронизации с Gradle файлами" (слева на кнопку менеджера AVD на верхней панели).
После того, как я сделал три выше, он начал нормально работать.
Ответ 13
Загрузите и скопируйте ваш файл .jar
в папку libs
затем добавьте следующие строки в build.gradle:
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.google.code.gson:gson:2.3.1'
}
Не забудьте нажать "Синхронизировать сейчас"
Ответ 14
В отличие от Eclipse нам не нужно скачивать jar и помещать его в папку /libs. Gradle обрабатывает эти вещи, нам нужно только добавить зависимости Gradle, Gradle загружает их и помещает в кэш Gradle.
Нам нужно добавить зависимости как:
зависимости {реализация 'com.google.code.gson: gson: 2.2.4'}
Вот и все. Однако мы также можем скачать jar и добавить его в виде библиотеки, но лучше всего добавлять зависимости Gradle.
Ответ 15
Я сделал выше 3 шага и его работа очарование для меня.
(Я использую Android Studio 2.1.2)
Шаг 1
- Добавьте имя вашего jar-пакета (как пример
compile 'com.squareup.okhttp3:okhttp:3.3.1'
) в скрипт сборки gradle в build.gradle (Модуль: приложение).
Шаг 2: Щелкните правой кнопкой мыши папку приложения -> Создать → Модуль
Шаг 3: Нажмите Импорт пакета JAR/.AAR, затем просмотрите пакет. как пример: OkHttp.jar
Ответ 16
Вы можете сделать это с двумя вариантами.
Первый простой способ.
Скопируйте файл.jar в буфер обмена и добавьте его в папку libs. Чтобы увидеть папку libs в проекте, выберите проект из выпадающего списка над папками.
затем щелкните правой кнопкой мыши на файле.jar и выберите "Добавить как библиотеку", затем выберите модуль и нажмите "ОК". Вы можете увидеть файл.jar в файле build.gradle в блоке зависимостей.
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:21.0.3'
implementation project(':okhttp-2.0.0')
implementation 'com.google.code.gson:gson:2.3.1'
}
Второй способ: мы можем добавить файл.jar в модуль, импортировав этот файл.jar как модуль.jar, а затем добавить этот модуль в любой модуль, который нам нужен.
модуль импорта ---> выберите файл.jar → чем импортировать как.jar -
Затем нажмите сочетание клавиш CTRL + ALT + SHIFT + S → структура проекта → выберите нужный модуль, чтобы добавить банку → Зависимости → Зависимость модуля. build.gradle модуля будет обновляться автоматически.
Ответ 17
Поместите файлы .jar
в папку libs
проекта Android.
Затем добавьте эту строку кода в файл приложения gradle:
compile fileTree(dir: 'libs', include: ['*.jar'])
Для плагина Android gradle 3.0 и более поздних версий лучше использовать это:
implementation fileTree(dir: 'libs', include: ['*.jar'])
Ответ 18
С Android Studio 3+:
Вы должны просто иметь возможность просто скопировать файл jar в папку libs прямо в папке приложения.
... myproject\app\libs\myfile.jar
Затем выберите Project Files из выпадающего списка в окне Projects, щелкните правой кнопкой мыши по проекту, выберите Synchronize, чтобы увидеть файл в Project Files. Он автоматически добавит зависимости в файл Gradle (Модуль: приложение).
dependencies {
...
implementation files('libs/myfile.jar')
Вот еще одно решение:
Перейдите в представление "Файлы проекта" (выберите "Файлы проекта" в раскрывающемся списке).
Выберите New... Directory, создайте папку с именем libs прямо под приложением.
Откройте File Explorer, скопируйте и вставьте файл JAR в папку libs.
В Android Studio щелкните правой кнопкой мыши файл JAR и выберите "Добавить как библиотеку..." во всплывающем меню.
Вы должны увидеть файл, указанный в списке зависимостей в файле Gradle:
dependencies {
...
implementation files('libs/myfile.jar')
}
Откройте свой Java файл и добавьте туда инструкцию import:
import com.xxx.xxx;
Ответ 19
menu File -> project struct -> module select "app" -> dependencies tab -> + button
-> File dependency -> PATH/myfile.jar
Ответ 20
В Mac OS X:
-
Добавить jar как библиотеку (перетащите jar в libs, щелкните правой кнопкой мыши добавить как lib)
-
Добавить компиляцию в build.grade
-
Установите gradle v1.6
(используйте доморощенный)
- brew установить gradle
- gradle -v
- если не v1.6, обновите homebrew
-
gradle clean (rebuild android не работает)
Это меня разобрало.
Ответ 21
Создайте папку libs. Добавьте файл .jar. Щелкните правой кнопкой мыши по нему, и вы найдете добавить jar в качестве зависимости. Нажмите здесь. Это все, что вам нужно сделать.
Вы можете найти зависимости, добавленные в ваш файл build.gradle.
Ответ 22
1) создайте папку "your_libs" внутри папки Project/app/src.
2) Скопируйте файл jar в эту папку "your_libs"
3) В Android Studio перейдите в меню Файл → Структура проекта → Зависимости → Добавить → Зависимость файла и перейдите к файлу jar, который должен находиться под "src/your_libs"
3) Выберите файл jar и нажмите "Ok"
а затем вы можете увидеть на своем build.gradle вот так: компилировать
файлы ( 'SRC/your_libs/your.jar')
Ответ 23
В android Studio 1.1.0.
Я решил этот вопрос, выполнив следующие шаги:
1: Поместите файл jar в каталог libs. (в Finder)
2: Откройте настройки модуля, перейдите в "Зависимости", в левом нижнем углу появится кнопка "плюс". Нажмите кнопку плюс, затем выберите "Зависимость файла". Здесь вы можете увидеть файл jar. Выберите его, и он разрешился.
Ответ 24
Шаг 1. Теперь под вашим app folder
вы увидите libs
, если вы его не видите, , затем создайте его. > .
Шаг 2: Drag & Drop the .jar file here
, вы можете получить приглашение "This file does not belong to the project"
, просто нажмите кнопку OK
.. p >
Шаг 3. Теперь вы должны увидеть файл jar в папке libs, щелкните правой кнопкой мыши файл jar и выберите "Add as library", Click OK for prompt "Create Library"
Шаг 4. Теперь добавлена jar.
Ответ 25
Я прочитал все ответы здесь, и все они, похоже, охватывают старые версии Android Studio!
С проектом, созданным с помощью Android Studio 2.2.3, мне просто нужно было создать каталог libs
в app
и разместить там свою банку.
Я сделал это с моим файловым менеджером, не нужно нажимать или редактировать что-либо в Android Studio.
Почему это работает? Откройте Build/Edit Libraries и Dependencies, и вы увидите:
{include=[*.jar], dir=libs}
Ответ 26
Как и многие предыдущие, вы добавите
compile files('libs/gson-2.2.3.jar')
в файл build.gradle.
Однако у меня есть проект в Android Studio, который был перенесен из Eclipse, и в этом случае папка "libs" называется "lib", поэтому для меня удаление "s" решило проблему.
Ответ 27
- Добавлена папка
libs
на уровне app
. - Добавлены все
jars
в этом проекте. - Затем выберите все банки в папке
libs
, - щелкните правой кнопкой мыши на выбранных элементах и скажите
add library
- тогда вы найдете опцию расширения jars в самом проводнике проекта.
Я заметил, что CTRL + ALT + SHIFT + S → структура проекта → app-module → Dependencies "уже имеют запись в виде (dir: 'libs', include: '*.jar')
в compile-option
, первоначально. И после добавления jar в соответствии с шагами, указанными выше, build.gradle
получил записи для нового добавленного jar's.
Ответ 28
В Android Studio 2.1 я следую так,
Перейти в приложение → src-> main → папка assets (если недоступно, создайте его) → поместите ваши JAR файлы
В вашем build.gradle добавьте такую зависимость,
implementation files('src/main/assets/jsoup.jar')
implementation files('src/main/assets/org-apache-xmlrpc.jar')
implementation files('src/main/assets/org.apache.commons.httpclient.jar')
implementation files('src/main/assets/ws-commons-util-1.0.2.jar')
Синхронизировать сейчас. Теперь ваши JAR файлы готовы к использованию.
Ответ 29
compile fileTree(dir: 'libs', include: '*.jar')
работает отлично, но не compile files(...)
проверили с помощью Studio Beta 0.8.1
Ответ 30
Мой ответ в основном собирает некоторые из правильных, но неполных ответов, приведенных выше.
- Открыть build.gradle
-
Добавьте следующее:
dependencies {
compile 'com.android.support:appcompat-v7:19.+'
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.google.code.gson:gson:2.3'
}
Это позволит поддерживать два разных способа добавления зависимостей. compile fileTree(dir: 'libs', include: ['*.jar'])
(как упоминалось в @Binod) сообщает компилятору посмотреть под папкой libs для ЛЮБОЙ банки. Хорошей практикой является создание такой папки "libs", которая будет содержать пакеты jar, которые необходимо использовать нашему приложению.
Но это также позволит поддерживать зависимость Maven. Компиляция 'com.google.code.gson:gson:2.3'
(как упоминалось в @saneryee) - это еще один рекомендуемый способ добавления зависимостей, которые находятся в центральном удаленном репозитории, а не в нашем /libs "локальном репозитории". В основном говоря gradle искать эту версию этого пакета, и он говорит компилятору рассмотреть его при компиляции проекта (имея его в пути к классам)
PS: Я использую оба