Я пытаюсь использовать новую 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
.
Кто-нибудь знает, что я делаю не так?
Я боролся с одним и тем же в течение многих часов, пытаясь заставить банку Гсона работать не меньше. Я наконец взломал это - вот шаги, которые я сделал:
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
который также необходим, как указали другие]
compile files
в build.gradle
и их нужно очистить с помощью gradlew
. Rebuild Project
из Android Studio, кажется, не делает чистку должным образом.
Вот инструкции по добавлению локального файла 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
еще раз
В проекте щелкните правой кнопкой мыши
-> new -> module
-> import jar/AAR package
-> import select the jar file to import
-> click ok -> done
1
2:
3:
Вы увидите следующее:
В Android Stuido мне нравится использовать Gradle для управления Gson lib.
Добавьте зависимость ниже в файле build.gradle.
repositories {mavenCentral()}
dependencies {compile 'com.google.code.gson:gson:2.2.4'}
Все в порядке.
Вы также можете увидеть этот пост. Лучший способ интеграции сторонней библиотеки в студию Android
IIRC, просто использовать "Добавить как библиотеку" недостаточно для его компиляции с проектом.
Отметьте Intellij help о добавлении библиотек в проект
Наиболее интересная вам часть:
(В
File > Project Structure
) Откройте настройки модуля и выберите вкладку "Зависимости".На вкладке "Зависимости" нажмите "Добавить" и выберите "Библиотека".
В диалоговом окне "Выбор библиотек" выберите одну или несколько библиотек и нажмите "Добавить выбранные".
Если библиотека не отображается в диалоговом окне, добавьте ее в настройки "Библиотеки", прямо под Модулями.
Вам больше не нужно добавлять compile files()
, и библиотека должна быть правильно добавлена в ваш проект.
Все эти решения устарели. Это действительно легко в Android Studio:
Файл > Новый модуль...
Следующий экран выглядит странно, например, вы выбираете какой-то виджет или что-то еще, но держите его на первом снимке и ниже прокрутки и найдите "Импорт JAR или .AAR Package"
Затем возьмите Project Structure
из меню "Файл". В открывшемся окне выберите app
, затем выберите dependencies
, затем нажмите green plus button
, выберите module dependency
, затем выберите модуль, который вы импортировали, затем нажмите OK
Простые шаги для добавления внешней библиотеки в 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 Масштабирование зависимостей
"компилировать файлы..." используется для меня, но не более того. после много боли, я обнаружил, что использование этого вместо этого работает:
compile fileTree(dir: 'libs', include: '*.jar')
Я понятия не имею, почему это имело значение, но, по крайней мере, проклятая вещь сейчас работает.
Это решило мою проблему. Попробуйте, если кто-нибудь захочет получить более подробную информацию, дайте мне знать.
Я сделал это, просто добавив одну строку в 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.
fileTree
строка fileTree
?
Я нашел 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 будет соответствующим образом обновлять ваши скрипты сборки.
Надеюсь, это поможет:)
Android Studio 2.3.3
1. Поместите банку (в моем случае,
gson-2.2.4.jar
) в папку libs.2. Убедитесь, что файлы компиляции (
libs/gson-2.2.4.jar
) находятся в файле build.gradle.3. Теперь нажмите "Проект синхронизации с Gradle файлами" (слева на кнопку менеджера AVD на верхней панели).
После того, как я сделал три выше, он начал нормально работать.
Загрузите и скопируйте ваш файл .jar
в папку libs
затем добавьте следующие строки в build.gradle:
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.google.code.gson:gson:2.3.1'
}
Не забудьте нажать "Синхронизировать сейчас"
Я сделал выше 3 шага и его работа очарование для меня.
(Я использую Android Studio 2.1.2)
Шаг 1
compile 'com.squareup.okhttp3:okhttp:3.3.1'
) в скрипт сборки gradle в build.gradle (Модуль: приложение).
Шаг 2: Щелкните правой кнопкой мыши папку приложения -> Создать → Модуль
Шаг 3: Нажмите Импорт пакета JAR/.AAR, затем просмотрите пакет. как пример: OkHttp.jar
В отличие от Eclipse нам не нужно скачивать jar и помещать его в папку /libs. Gradle обрабатывает эти вещи, нам нужно только добавить зависимости Gradle, Gradle загружает их и помещает в кэш Gradle.
Нам нужно добавить зависимости как:
зависимости {реализация 'com.google.code.gson: gson: 2.2.4'}
Вот и все. Однако мы также можем скачать jar и добавить его в виде библиотеки, но лучше всего добавлять зависимости 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.
Затем добавьте эту строку кода в файл приложения gradle:
compile fileTree(dir: 'libs', include: ['*.jar'])
Для плагина Android gradle 3.0 и более поздних версий лучше использовать это:
implementation fileTree(dir: 'libs', include: ['*.jar'])
Вы можете сделать это с двумя вариантами.
Первый простой способ.
Скопируйте файл.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 модуля будет обновляться автоматически.
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 Libraries и Dependencies, и вы увидите:
{include=[*.jar], dir=libs}
Шаг 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.
В android Studio 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 и нажмите "Ok"
а затем вы можете увидеть на своем build.gradle вот так: компилировать файлы ( 'SRC/your_libs/your.jar')
Создайте папку libs. Добавьте файл .jar. Щелкните правой кнопкой мыши по нему, и вы найдете добавить jar в качестве зависимости. Нажмите здесь. Это все, что вам нужно сделать. Вы можете найти зависимости, добавленные в ваш файл build.gradle.
В Mac OS X:
Добавить jar как библиотеку (перетащите jar в libs, щелкните правой кнопкой мыши добавить как lib)
Добавить компиляцию в build.grade
Установите gradle v1.6
(используйте доморощенный)
gradle clean (rebuild android не работает)
Это меня разобрало.
В 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 файлы готовы к использованию.
libs
на уровне app
.jars
в этом проекте.libs
,add library
Я заметил, что CTRL + ALT + SHIFT + S → структура проекта → app-module → Dependencies "уже имеют запись в виде (dir: 'libs', include: '*.jar')
в compile-option
, первоначально. И после добавления jar в соответствии с шагами, указанными выше, build.gradle
получил записи для нового добавленного jar's.
Как и многие предыдущие, вы добавите
compile files('libs/gson-2.2.3.jar')
в файл build.gradle.
Однако у меня есть проект в Android Studio, который был перенесен из Eclipse, и в этом случае папка "libs" называется "lib", поэтому для меня удаление "s" решило проблему.
Для более новой версии Android 1.0.2 в вашем файле build.gradle уже есть следующее
implementation fileTree(include: ['*.jar'], dir: 'libs')
Добавьте jar библиотеки в папку libs → щелкните правой кнопкой мыши библиотеку → нажмите кнопку Добавить как библиотеку → она попросит вас добавить проект → выберите ваш project-> нажмите кнопку ОК Следующая строка автоматически добавляется в build.gradle
implementation files('libs/android-query.jar')
Это сделало это для меня. больше ничего не требовалось. Я показал это для Android Aquery еще одну стороннюю библиотеку для Android.
Мой ответ в основном собирает некоторые из правильных, но неполных ответов, приведенных выше.
Добавьте следующее:
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: Я использую оба
compile fileTree(dir: 'libs', include: '*.jar')
работает отлично, но не compile files(...)
проверили с помощью Studio Beta 0.8.1
Я не знаю, почему, но моя Android Studio 0.8.14 сходит с ума, когда я пытаюсь реализовать эти решения, используя Gradle. Я признаю свое плохое знание этого великолепного инструмента построения, но для чего студия искажает мой проект? Мне удалось заставить его работать следующим образом: поместите android-support-v13.jar в каталог "libs", затем F4 в моем проекте и добавьте зависимость файла, где я указал android-support-v13.jar.
В моем случае добавленная библиотека пропустила некоторые зависимости, но, к сожалению, Android Studio (0.8.14) сохранила это как секрет.
Не нужно было ничего настраивать вручную! Я просто добавил недостающие библиотеки и использовал конфигурацию зависимостей по умолчанию в файле app build.gradle
, как этот
dependencies {
compile 'com.google.code.gson:gson:2.+'
compile fileTree(dir: 'libs', include: ['*.jar'])
}
Сделайте это:
Создайте папку libs в папке приложения. Добавьте файлы .jar в папку libs. Затем добавьте файлы .jar в приложение build.gradle. Наконец, проект Sync с файлами Gradle.