Android Studio: добавить банку в качестве библиотеки?
Я пытаюсь использовать новую студию Android, но я не могу заставить ее работать правильно.
Я использую Gson библиотека для сериализации / десериализации JSON-объектов. Но библиотека почему-то не включена в сборку.
Я создал новый проект с просто MainActivity. Скопировано gson-2.2.3.банку в папке /libs и добавил его как зависимость от библиотеки (щелкните правой кнопкой мыши->добавить как библиотеку). Это включает в себя банки на Андроид студия, поэтому на нее можно ссылаться из исходных файлов.
когда я пытаюсь запустить проект, он не может скомпилировать, поэтому я добавил:
compile files('libs/gson-2.2.3.jar')
к зависимостям в de .файл gradle. После этого он компилируется правильно, но при запуске приложения я получаю ClassDefNotFoundException
.
кто-нибудь знает, что я делаю неправильно?
30 ответов:
я боролся с тем же самым в течение многих часов, пытаясь заставить банку Gson работать не меньше. Я, наконец, взломал его-вот шаги, которые я сделал:
- положите банку Gson (в моем случае,
gson-2.2.4.jar
) вlibs
папку- щелкните его правой кнопкой мыши и нажмите "Добавить как библиотеку"
обеспечить
compile files('libs/gson-2.2.4.jar')
в своем (илиcompile fileTree(dir: 'libs', include: '*.jar')
если вы используете много файлов jar)Edit: Use
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
шаг, который также необходим, как указывали другие]
вот инструкции по добавлению локального файла jar в качестве библиотеки в модуль:
создайте папку "libs" на верхнем уровне каталога модуля (тот же каталог, который содержит каталог "src")
на
build.gradle file
добавьте следующее, Чтобы ваше закрытие зависимостей имело:dependencies { // ... other dependencies compile files('libs/<your jar's name here>') }
Android Studio уже должна была установить оболочку gradlew. От в командной строке перейдите на верхний уровень вашего проекта (каталог, который имеет ).
выполнить
./gradlew assemble
. Это должно скомпилировать проект с библиотекой. Возможно, потребуется исправить ошибки в сборке.файл gradle по мере необходимости.для того, чтобы Android Studio распознала локальные файлы jar как библиотеки для поддержки при кодировании в IDE, вам нужно сделать еще несколько шагов:
4.1. Щелкните правой кнопкой мыши на модуле слева ручная панель и выберите
Open Library Settings
.4.2. На левой панели диалогового окна, выберите
Libraries
.4.3. Нажмите кнопку
+
знак над панелью второй слева ->Java
4.4. Выберите локальную банку и добавьте ее в проект.
возможно, Вам придется выполнить выше еще раз
IIRC, просто используя "добавить как библиотеку" недостаточно для его компиляции с проектом.
Регистрация Intellij это о добавлении библиотек в проект
часть, которая должна вас заинтересовать больше всего это:
(In
File > Project Structure
) откройте Настройки модуля и выберите вкладку зависимости.на вкладке зависимости нажмите кнопку Добавить и выберите Библиотека.
в диалоговом окне Выбор библиотек выберите один или дополнительные библиотеки и нажмите кнопку добавить выбранные.
если библиотека не отображается в диалоговом окне, добавьте ее в настройки библиотек, прямо под модулями.
вам не нужно добавлять
compile files()
больше, и библиотека должна быть правильно добавлена в ваш проект.
в Android Stuido, мне нравится использовать Gradle для управления Gson lib.
добавить ниже зависимость в вашей сборке.файл gradle.
repositories {mavenCentral()} dependencies {compile 'com.google.code.gson:gson:2.2.4'}
все в порядке.
вы также можете увидеть этот пост. лучший способ интегрировать стороннюю библиотеку в Android studio
все эти решения устарели. Это действительно легко теперь в Android Studio:
Файл > Новый Модуль...
следующий экран выглядит странно, как будто вы выбираете какой-то виджет или что-то, но держите его на первой картинке и ниже прокрутите и найдите "Import JAR or .Пакет AAR"
взятьProject Structure
из меню Файл.Выберитеapp
В открывшемся окне выберитеdependencies
,нажмите клавишуgreen plus button
выберитеmodule dependency
затем выберите импортированный модуль и нажмитеOK
'...- раньше работал на меня, но больше нет. после большой боли я обнаружил, что использование этого вместо этого работает:
compile fileTree(dir: 'libs', include: '*.jar')
Я понятия не имею, почему это сделал разницу, но, по крайней мере, эта штука работает.
простые шаги для добавления внешней библиотеки в Android Studio
- если вы находитесь в Android просмотр в обозревателе проектов, измените его на проект вид, как показано ниже
- щелкните правой кнопкой мыши нужный модуль, в который вы хотите добавить внешнюю библиотеку, затем выберите New > Directroy и назовите его как - libs'
- скопировать blah_blah.банку в 'libs'
- щелкните правой кнопкой мыши blah_blah.фляги, затем выберите 'добавить в библиотеку..'. Это автоматически добавит и запись в построить.gradle как компиляции файлы ('libs / blah_blah.jar') и синхронизировать gradle. И вы сделали
Обратите Внимание : Если вы используете сторонние библиотеки, то лучше использовать зависимости где Gradle скрипт автоматически загружает банку и банку зависимостей, когда gradle запуск сценария.
Ex: compile ' com.гуглить.андроид.gms: play-услуги-объявления: 9.4.0'
подробнее о Gradle Dependency Mangement
- Скачать файл библиотеки с сайта
- копировать из Windows explore
- вставить в папку lib из Обозревателя проекта
- Ctrl+ Alt+Shift+S открыть структуру проекта
- выберите вкладку зависимости, добавьте файл с помощью +
- панель инструментов синхронизировать проект с файлом gradle с помощью кнопки
это решило мою проблему. Попробуйте, если кто-то хочет больше деталей пусть я знаю.
Я заставил его работать, просто добавив одну строку для сборки.Gradle в:
dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) ----> AS creates this compile 'com.google.code.gson:gson:2.3.1' ----------> I added this one }
Не забудьте нажать кнопку "Синхронизировать сейчас" в правом верхнем углу.
Im с помощью Android Studio 1.0.1.
Я нашел менеджер зависимостей Android Studio довольно удобным и мощным для управления зависимостями сторонних производителей (например, Gson, упомянутый здесь). Предоставление пошагового руководства, которое работало для меня (примечание: эти шаги тестируются для Android Studio 1.6 и последующих версий на платформе Windows).
Шаг 1: Перейти " построить > редактировать библиотеки и зависимости..."это откроет диалог" проект Структура"
Шаг 2: Выберите "приложение", а затем выберите вкладку "зависимости". Затем выберите "Добавить > 1 зависимость библиотеки"
Шаг 3: Появится диалоговое окно "выбрать зависимость от библиотеки", укажите" gson "в поиске и нажмите кнопку"Поиск"
Шаг 4: Желаемая зависимость будет показана в списке поиска выберите com.гуглить.код.gson: gson: 2.7 (это последняя версия на момент написания ответа), нажмите OK
нажмите OK в диалоговом окне "структура проекта". Gradle соответствующим образом обновит ваши скрипты сборки.
надеюсь, что это поможет :)
1. ставим банку (в моем случае
gson-2.2.4.jar
) в папку libs.2. убедитесь, что компилировать файлы (
libs/gson-2.2.4.jar
) в сборку.файл gradle.3. Теперь нажмите на кнопку "Синхронизировать проект с файлами Gradle" (слева от кнопки AVD manager на верхней панели).
после того, как я сделал выше трех, он начал работать нормально.
Скачать И Скопировать на
libs
папка затем добавляет эти строки для сборки.Gradle в:dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.google.code.gson:gson:2.3.1' }
не забудьте нажать "синхронизация"
Android Studio 1.1.0
В отличие от Eclipse нам не нужно загружать jar и помещать его в папку /libs. Gradle обрабатывает эти вещи нам нужно только добавить зависимости Gradle, Gradle загружает его и помещает в кэш gradle.
нам нужно добавить зависимости как:
зависимости {compile ' com.гуглить.код.gson: gson: 2.2.4'}
вот и все Однако мы также можем загрузить jar и добавить его в качестве библиотеки, но лучше всего добавить зависимости Gradle.
вы можете сделать это с помощью двух вариантов.
первый простым способом.
скопировать .jar-файл в буфер обмена, затем добавьте его в папку libs. Чтобы просмотреть папку libs в проекте, выберите проект из выпадающего списка над папками.
щелкните правой кнопкой мыши на .jar файл и нажмите кнопку Добавить в библиотеку, затем выберите модуль, затем ОК. Вы можете видеть.jar-файл в build.файл Gradle в блоке зависимостей.
dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:21.0.3' compile project(':okhttp-2.0.0') compile 'com.google.code.gson:gson:2.3.1' }
Второй способ таков: мы можем добавить a .jar-файл в модуль импорта этих .файл jar как a .затем добавьте этот модуль в любой модуль, который мы хотим.
импорт модуля - - - > выберите ваш .jar file --> чем импортировать как a .сосуд --
затем CTRL+ALT+SHIFT+S -- > project sturure -->выберите модуль, который вы хотите добавить a jar -- >Dependencendies --> зависимость модуля. строить.gradle модуля будет обновляться автоматически.
просто поставить
.jar
файлыlibs
папка проекта Android.
compile fileTree(dir: 'libs', include: ['*.jar'])
эта строка кода в файле приложения graddle сделает все остальное.
Happy Coding :)
Ive сделали выше 3 шага и его работа очарование для меня.
(Я использую Android Studio 2.1.2)
Шаг 1
- добавить jar имя пакета (например
compile 'com.squareup.okhttp3:okhttp:3.3.1'
) в gradle build script под построить.gradle (модуль:приложение).Шаг 2: Право нажмите на кнопку app папку -> Новый -> Модуль
Шаг 3: клик импорт JAR/.Пакет AAR затем найдите свой пакет. в качестве примера: OkHttp.банку
menu File -> project struct -> module select "app" -> dependencies tab -> + button -> File dependency -> PATH/myfile.jar
на Mac OS X:
добавить jar как библиотеку (перетащите jar в libs, щелкните правой кнопкой мыши добавить как lib)
добавить оператор компиляции в
build.grade
установить
gradle v1.6
(используйте homebrew)
- brew install gradle
- gradle-v
- если не v1. 6, обновить homebrew
gradle clean (перестроить android не получилось)
Это меня рассортировало.
создать папку libs. Добавь свой .файл jar. Щелкните правой кнопкой мыши на нем, и вы найдете добавить банку как зависимость. Щелкнуть по нему. Все, что вам нужно сделать. Вы можете найти зависимости, добавленные в вашу сборку.файл gradle.
1) создайте папку "your_libs" внутри папки Project/app/src.
2) скопируйте файл jar в эту папку "your_libs"
3) в Android Studio перейдите в File -> Project Structure -> Dependencies -> Add -> File Dependency и перейдите к файлу jar, который должен быть под 'src/your_libs'
3) Выберите файл jar и нажмите кнопку 'Ok'
и тогда вы можете посмотреть на сборку.gradle вот так: компилировать файлы ('src/your_libs / your.jar')
в Android Studio 1.1.0 . Я решил этот вопрос следующим образом:
1: Поместите файл jar в каталог libs. (в Finder)
2: Откройте Настройки модуля, перейдите к зависимостям, в левом нижнем углу есть кнопка плюс. Нажмите кнопку Плюс, затем выберите "зависимость от файла".Здесь вы можете увидеть jar-файл. Выберите его, и он будет разрешен.
Шаг 1 : теперь под вашим
app folder
вы должны увидетьlibs
, если ты этого не видишь,затем создать его .Шаг 2 :
Drag & Drop the .jar file here
, вы можете получить подсказку"This file does not belong to the project"
, нажмитеOK
.Шаг 3 : Теперь вы должны увидеть jar-файл в папке libs щелкните правой кнопкой мыши на файле jar и выберите
"Add as library", Click OK for prompt "Create Library"
Шаг 4 : Теперь этот jar была добавлена.
С Android Studio 3+:
вы должны просто иметь возможность просто скопировать файл jar в папку libs прямо под папкой приложения.
... myproject\app\libs\myfile.банку
затем выберите файлы проекта из раскрывающегося списка в окне проекты, щелкните правой кнопкой мыши на проекте, выберите Синхронизировать, чтобы увидеть файл в файлах проекта. Он автоматически добавит зависимости в файл gradle (модуль:приложение).
dependencies { ... implementation files('libs/myfile.jar')
вот еще один решение:
перейдите в представление файлы проекта (выберите файлы проекта из раскрывающегося списка).
Выберите Новый... Каталог, создайте папку с именем libs прямо под приложением.
Откройте проводник, скопируйте и вставьте файл Jar в папку libs.
В Android Studio щелкните правой кнопкой мыши файл jar и выберите Добавить в качестве библиотеки... из всплывающего окна меню.
вы должны увидеть файл, указанный в списке зависимостей в файле gradle:
dependencies { ... implementation files('libs/myfile.jar') }
откройте файл java и добавьте туда оператор import:
import com.xxx.xxx;
Как и многие ранее указывали вы должны добавить
compile files('libs/gson-2.2.3.jar')
в сборку.файл gradle.
однако у меня есть проект в Android Studio, который был перенесен из Eclipse, и в этом случае папка "libs" называется "lib", поэтому для меня удаление "s" решило проблему.
Я прочитал все ответы здесь, и все они, кажется, охватывают старые версии Android Studio!
С проектом, созданным с Android Studio 2.2.3 мне просто нужно было создать
compile fileTree(dir: 'libs', include: '*.jar')
работает нормально, но неcompile files(...)
протестировали с Studio Beta 0.8.1
мой ответ в основном собирает некоторые из правильных, но неполных ответов, представленных выше.
- открыть сборки.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 для любого jar. Рекомендуется создать такую папку "libs", которая будет содержать пакеты jar, необходимые нашему приложению использовать.но это также позволит поддерживать зависимость Maven. Компиляция
'com.google.code.gson:gson:2.3'
(Как упоминалось @saneryee) это еще один рекомендуемый способ добавления зависимостей, которые находятся в Центральном удаленном репозитории, а не в нашем /libs "локальном репозитории". Он в основном говорит gradle искать эту версию этого пакета, и он говорит компилятору рассмотреть его при компиляции проекта (имея его в пути к классам)PS: я использую как
для более нового Android 1.0.2 следующее уже есть в вашей сборке.gradle file
compile fileTree (include: ['*.jar'], реж.: 'libs')
добавить библиотеку jar в папку libs - > щелкните правой кнопкой мыши библиотеку - > нажмите кнопку Добавить как библиотеку -> он просит вас для проекта, чтобы добавить его для -> выберите свой проект - > нажмите кнопку ОК Следующая строка автоматически добавляется в сборку.gradle
компилировать файлы ('libs / android-query.jar')
Это сделало это для меня. больше ничего не требовалось. я показал это для android aquery еще одна сторонняя библиотека для android.
- добавлена папка " libs "на уровне"app".
- добавлены все "банки" в этом проекте.
- далее, выделил все банки, в папке "libs",
- щелкните правой кнопкой мыши на выбранных элементах и скажите "добавить библиотеку"
- затем вы найдете опцию расширения jars в самом Обозревателе проектов.
я заметил, что "CTRL+ALT+SHIFT+S -- > структура проекта --> app-module -->Dependencies" уже имел Запись Как (реж.:' libs', include:'*.jar') "в разделе" compile-option", изначально. И после добавления банки в соответствии с шагами, указанными выше, " построить.gradle " получил записи для новой добавленной банки, сам.