Android Studio: добавить банку в качестве библиотеки?
Я пытаюсь использовать новую Android Studio, но не могу заставить ее работать правильно.
Я использую библиотеку Gson для сериализации / десериализации JSON-объектов. Но библиотека как-то не включена в сборку.
Я создал новый проект только с MainActivity. Скопировал gson-2.2.3.jar в папку /libs и добавил его как зависимость от библиотеки (щелкните правой кнопкой мыши - > Добавить как библиотеку). Это включает в себя jar в Android Studio, так что на него можно ссылаться из исходных файлов.
Когда я пытаюсь запустить проект, он не может скомпилироваться, поэтому я добавил:
compile files('libs/gson-2.2.3.jar')
к зависимостям в файле de.gradle. После этого он компилируется правильно, но при запуске приложения я получаю ClassDefNotFoundException
,
Кто-нибудь знает, что я делаю не так?
35 ответов
Я боролся с одним и тем же в течение многих часов, пытаясь заставить банку Гсона работать не меньше. Я наконец взломал это - вот шаги, которые я сделал:
- Положите банку 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
шаг, который также необходим, как указали другие]
Вот инструкции по добавлению локального файла JAR в виде библиотеки в модуль:
Создайте папку 'libs' в верхнем уровне каталога модуля (тот же каталог, который содержит каталог 'src')
в
build.gradle file
добавьте следующее, чтобы ваше закрытие зависимостей имело:dependencies { // ... other dependencies compile files('libs/<your jar's 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
командовать еще раз
В проекте правой кнопкой мыши
-> new -> module
-> import jar/AAR package
-> import select the jar file to import
-> click ok -> done
Следуйте скриншотам ниже:
1:
2:
3:
Вы увидите это:
IIRC, просто использовать "Добавить как библиотеку" недостаточно для его компиляции с проектом.
Обратитесь к справке Intellij о добавлении библиотек в проект
Часть, которая должна вас заинтересовать, это:
(В
File > Project Structure
) Откройте настройки модуля и выберите вкладку Зависимости.На вкладке "Зависимости" нажмите "Добавить" и выберите "Библиотека".
В диалоговом окне "Выбрать библиотеки" выберите одну или несколько библиотек и нажмите "Добавить выбранные".
Если библиотека не отображается в диалоговом окне, добавьте ее в настройках библиотеки, прямо под модулями.
Вам не нужно добавлять compile files()
больше, и библиотека должна быть правильно добавлена в ваш проект.
В Android Stuido мне нравится использовать Gradle для управления Gson lib.
Добавьте ниже зависимости в вашем файле build.gradle.
repositories {mavenCentral()}
dependencies {compile 'com.google.code.gson:gson:2.2.4'}
Все отлично.
Вы также можете увидеть этот пост. Лучший способ интеграции сторонней библиотеки в Android Studio
Все эти решения устарели. В Android Studio это действительно легко:
Файл> Новый модуль...
Следующий экран выглядит странно, как будто вы выбираете какой-то виджет или что-то еще, но держите его на первом изображении и прокрутите ниже и найдите "Импортировать JAR или.AAR Package"
Затем взять Project Structure
из меню Файл. Выберите app
в открывшемся окне выберите dependencies
затем нажмите green plus button
,Выбрать module dependency
затем выберите модуль, который вы импортировали, затем нажмите OK
Простые шаги для добавления внешней библиотеки в Android Studio
- Если вы находитесь в представлении Android в обозревателе проектов, измените его на представление проекта, как показано ниже.
- Щелкните правой кнопкой мыши нужный модуль, в который вы хотите добавить внешнюю библиотеку, затем выберите " Создать"> "Directroy" и назовите его " libs ".
- Теперь скопируйте blah_blah.jar в папку " libs ".
- Щелкните правой кнопкой мыши файл blah_blah.jar, затем выберите " Добавить как библиотеку... ". Это автоматически добавит и запишет в build.gradle как файлы компиляции ('libs / blah_blah.jar') и синхронизирует gradle. И вы сделали
Обратите внимание: если вы используете сторонние библиотеки, то лучше использовать зависимости, где скрипт Gradle автоматически загружает JAR и JAR зависимостей при запуске скрипта gradle.
Пример: составить com.google.android.gms:play-services-ads:9.4.0'
Узнайте больше о Gradle Dependency Mangement
"Компилировать файлы..." раньше работал для меня, но не больше. после большой боли я обнаружил, что использование этого вместо этого работает:
compile fileTree(dir: 'libs', include: '*.jar')
Я понятия не имею, почему это имело значение, но, по крайней мере, чертовски важно сейчас.
- Скачать файл библиотеки с сайта
- Копировать из окна исследовать
- Вставить в папку lib из Project Explorer
- Ctrl+Alt+Shift+S открыть структуру проекта
- Выберите вкладку Dependencies, добавьте файл с помощью +
- Панель инструментов Синхронизируйте проект с файлом Gradle с помощью кнопки
Это решило мою проблему. Попробуй, если кто-то захочет узнать подробности, дай мне знать.
Я сделал это, просто добавив одну строку в build.gradle:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar']) ----> AS creates this
compile 'com.google.code.gson:gson:2.3.1' ----------> I added this one
}
Не забудьте нажать "Синхронизировать сейчас" в правом верхнем углу.
Я использую Android Studio 1.0.1.
Я нашел Dependency Manager из Android Studio довольно удобным и мощным для управления сторонними зависимостями (как упомянуто здесь gson). Предоставление пошагового руководства, которое сработало для меня (ПРИМЕЧАНИЕ. Эти шаги протестированы для Android Studio 1.6 и более поздних версий на платформе Windows).
Шаг 1: Перейдите к "Построить> Редактировать библиотеки и зависимости...", откроется диалоговое окно "Структура проекта".
Шаг 2: Выберите "приложение", а затем перейдите на вкладку "Зависимости". Затем выберите "Добавить> 1 зависимость библиотеки"
Шаг 3: Откроется диалоговое окно "Выберите библиотечную зависимость", укажите "gson" в поиске и нажмите "кнопку поиска"
Шаг 4: Нужная зависимость будет отображаться в списке поиска, выберите com.google.code.gson:gson:2.7 (это последняя версия на момент написания ответа), нажмите ОК.
Нажмите ОК в диалоговом окне "Структура проекта". Gradle обновит ваши скрипты сборки соответственно.
Надеюсь, это поможет:)
1. Поставьте банку (в моем случае
gson-2.2.4.jar
) в папку libs.2. Убедитесь, что файлы компиляции (
libs/gson-2.2.4.jar
) находится в вашем файле build.gradle.3. Теперь нажмите "Синхронизировать проект с файлами Gradle"(кнопка слева от диспетчера AVD на верхней панели).
После того, как я сделал вышеупомянутые три, это начало работать хорошо.
Скачать и скопировать .jar
файл в libs
затем добавьте эти строки в build.gradle:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.google.code.gson:gson:2.3.1'
}
Не забудьте нажать "Синхронизировать сейчас"
Android Studio 1.1.0
Вы можете сделать это с двумя вариантами.
Первый простой способ.
Скопируйте файл.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'
}
Второй способ: мы можем добавить файл.jar в модуль, импортировав этот файл.jar как модуль.jar, а затем добавить этот модуль в любой модуль, который нам нужен.
модуль импорта ---> выберите файл.jar -> чем импортировать как.jar -
Затем нажмите CTRL+ALT+SHIFT+S -> Проектная структура -> выберите нужный модуль, чтобы добавить jar -> Зависимости -> Зависимость модуля. build.gradle модуля будет обновляться автоматически.
С 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;
Просто положи .jar
файлы в libs
папка проекта Android.
compile fileTree(dir: 'libs', include: ['*.jar'])
эта строка кода в файле приложений будет делать все остальное.
Happy Coding :)
В отличие от Eclipse нам не нужно скачивать jar и помещать его в папку /libs. Gradle обрабатывает эти вещи, нам нужно только добавить зависимости Gradle, Gradle загружает их и помещает в кэш Gradle.
Нам нужно добавить зависимости как:
dependencies {compile 'com.google.code.gson: gson: 2.2.4'}
Вот и все. Однако мы также можем скачать jar и добавить его в виде библиотеки, но лучше всего добавлять зависимости Gradle.
Я сделал выше 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
menu File -> project struct -> module select "app" -> dependencies tab -> + button
-> File dependency -> PATH/myfile.jar
Я прочитал все ответы здесь, и они все, кажется, охватывают старые версии Android Studio!
С проектом, созданным в Android Studio 2.2.3, мне просто нужно было создать libs
каталог под app
и поставь мою банку туда. Я сделал это с помощью моего файлового менеджера, не нужно ничего нажимать или редактировать в Android Studio.
Почему это работает? Откройте Build / Edit библиотеки и зависимости, и вы увидите:
{include=[*.jar], dir=libs}
Шаг 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: Теперь эта банка была добавлена.
В андроид студии 1.1.0 . Я решил этот вопрос, выполнив следующие действия:
1: Поместите файл jar в каталог libs. (в Finder)
2: Откройте настройки модуля, перейдите в Зависимости, в левом нижнем углу есть кнопка "плюс" . Нажмите кнопку плюс, затем выберите "Зависимость файла" . Здесь вы можете увидеть файл JAR. Выберите это, и это решено.
1) создайте папку your_libs внутри папки Project/app/src.
2) Скопируйте свой jar-файл в эту папку your_libs
3) В Android Studio перейдите в Файл -> Структура проекта -> Зависимости -> Добавить -> Зависимость файла и перейдите к файлу JAR, который должен находиться в "src/your_libs".
3) Выберите файл JAR и нажмите "ОК"
и затем вы можете увидеть на вашем build.gradle так: скомпилировать файлы ('src/your_libs/your.jar')
Создать папку libs. Добавьте ваш файл.jar. Щелкните правой кнопкой мыши на нем, и вы найдете добавить банку в качестве зависимости. Нажмите здесь. Это все, что вам нужно сделать. Вы можете найти зависимости, добавленные в ваш файл build.gradle.
В Android Studio 2.1 я следую так,
Перейти в приложение -> src-> main -> папка assets (если недоступно, создайте его) -> поместите ваши JAR-файлы
В вашем build.gradle добавьте такую зависимость,
compile files('src/main/assets/jsoup.jar')
compile files('src/main/assets/org-apache-xmlrpc.jar')
compile files('src/main/assets/org.apache.commons.httpclient.jar')
compile files('src/main/assets/ws-commons-util-1.0.2.jar')
Синхронизировать сейчас. Теперь ваши JAR-файлы готовы к использованию.
Как и многие ранее, вы должны добавить
compile files('libs/gson-2.2.3.jar')
в ваш файл build.gradle.
Однако у меня есть проект в Android Studio, который был перенесен из Eclipse, и в этом случае папка "libs" называется "lib", поэтому удаление "s" решило проблему.
В Mac OS X:
Добавить jar как библиотеку (перетащите jar в libs, щелкните правой кнопкой мыши add as lib)
Добавить оператор компиляции в
build.grade
устанавливать
gradle v1.6
(используйте доморощенный)- заваривать грейдл
- gradle -v
- если не v1.6, обновите homebrew
Gradle чистый (перестроить Android не работает)
Это разобрало меня.
Мой ответ в основном собирает некоторые правильные, но неполные ответы, представленные выше.
- Откройте 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 ЛЮБОЙ jar. Хорошей практикой является создание такой папки libs, которая будет содержать пакеты jar, которые необходимо использовать нашему приложению.
Но это также позволит поддерживать зависимость Maven. Компиляция 'com.google.code.gson:gson:2.3'
(как упомянуто @saneryee) это еще один рекомендуемый способ добавления зависимостей, которые находятся в центральном удаленном хранилище, а не в нашем /libs "локальном хранилище". Это в основном говорит gradle искать эту версию этого пакета, и говорит компилятору учитывать это при компиляции проекта (имея его в classpath)
PS: я использую оба
- Добавил
libs
папка на уровнеapp
, - Добавлено все
jars
в этом проекте. - Далее выбрал все банки, в
libs
папка, - щелкните правой кнопкой мыши на выбранных элементах и скажите
add library
- тогда вы найдете опцию расширения jars в самом проводнике проекта.
Я заметил, что CTRL + ALT + SHIFT + S -> структура проекта -> app-module ->Dependencies"уже имеет запись как (dir: 'libs', include: '*.jar')
под compile-option
, первоначально. И после добавления банки в соответствии с шагами, указанными выше, build.gradle
получил записи для новой добавленной банки, сам.
Для более новой версии Android 1.0.2 в вашем файле build.gradle уже есть следующее
compile fileTree(include: ['*.jar'], dir: 'libs')
Добавьте jar библиотеки в папку libs -> щелкните правой кнопкой мыши библиотеку -> нажмите кнопку Добавить как библиотеку -> она попросит вас добавить проект -> выберите ваш проект -> нажмите кнопку ОК Следующая строка автоматически добавляется для сборки.gradle
скомпилировать файлы ('libs/android-query.jar')
Это сделало это для меня. больше ничего не требовалось. Я показал это для Android Aquery еще одну стороннюю библиотеку для Android.