Android Studio: добавить jar в качестве библиотеки?

Ozzie 08/31/2017. 30 answers, 600.958 views
android android gradle android-studio android-studio dependency-management

Я пытаюсь использовать новую Android-студию, но я не могу заставить ее работать правильно.

Я использую библиотеку Gson для сериализации / десериализации JSON-объектов. Но библиотека как-то не включена в сборку.

Я создал новый проект just a MainActivity . Скопировал gson-2.2.3.jar в папку / libs и добавил его как библиотеку ( gson-2.2.3.jar > Добавить как библиотеку). Это включает банку в студии android, поэтому на нее можно ссылаться из исходных файлов.

Когда я пытаюсь запустить проект, он не может скомпилироваться, поэтому я добавил:

compile files('libs/gson-2.2.3.jar') 

к зависимостям в файле .gradle. После этого он компилируется правильно, но при запуске приложения я получаю ClassDefNotFoundException .

Кто-нибудь знает, что я делаю неправильно?

30 Answers


lepoetemaudit 07/12/2016.

Я боролся с тем же самым делом в течение многих часов, пытаясь заставить банку Джона работать не меньше. Я, наконец, взломал его - вот шаги, которые я сделал:

  1. Поместите банку Gson (в моем случае, gson-2.2.4.jar ) в папку libs
  2. Щелкните правой кнопкой мыши и нажмите «Добавить в библиотеку»,
  3. Убедитесь, что compile files('libs/gson-2.2.4.jar') находятся в файле build.gradle (или compile fileTree(dir: 'libs', include: '*.jar') если вы используете много файлов jar )
  4. Сделайте чистую сборку (вы, вероятно, можете сделать это в Android Studio, но убедитесь, что я перешел в терминал в корневую папку своего приложения и набрал gradlew clean . Я нахожусь в Mac OS X, команда может отличаться на вашей системы

После того, как я сделал четыре выше, он начал нормально работать. Я думаю, что шаг «Добавить как библиотеку» был тем, который я раньше пропустил, и это не сработало, пока я его не очистил.

[Изменить - добавлен шаг build.gradle который также необходим, как указывали другие]

5 comments
6 František Žiačik 05/25/2013
Мне тоже помог градлув. Большое спасибо!
159 J c 05/27/2013
Если вы не хотите явно добавлять строку для каждого файла jar: compile fileTree(dir: 'libs', include: '*.jar')
61 Joe 07/17/2013
Я бы рекомендовал воспользоваться преимуществами управления переходной зависимостью gradle и загрузить gson из mavenCentral () (если требуется подключение к Интернету, это приемлемо. Просто добавьте repositories { mavenCentral() } и замените свои compile files(...) на compile 'com.google.code.gson:gson:2.2.4' и gradle автоматически загрузит и управляет файлом jar для вас. Это позволяет SCM отслеживать только файлы исходного кода, а не библиотеки.
29 Yster 08/10/2014
Я не получаю параметр «Добавить как библиотеку» на шаге 2.
5 Brian Marick 01/16/2015
В Android Studio 1.0.2 шаги 2 и 3 не нужны, потому что эта строка уже находится в build.gradle по умолчанию: compile fileTree (dir: 'libs', include: ['* .jar]).

ZenBalance 12/18/2015.

Ниже приведены инструкции по добавлению локального файла jar в виде библиотеки в модуль:

  1. Создайте папку «libs» на верхнем уровне каталога модуля (тот же каталог, который содержит каталог «src»)

  2. В build.gradle file добавьте следующее, чтобы ваше закрытие зависимостей:

    dependencies {
        // ... other dependencies
        compile files('libs/')
    } 
  3. Android Studio должна уже установить оболочку gradlew. В командной строке перейдите на верхний уровень вашего проекта (каталог с файлом gradlew ).

    Запустите ./gradlew assemble . Это должно скомпилировать проект с библиотекой. Возможно, вам потребуется исправить ошибки в файле build.gradle по мере необходимости.

  4. Чтобы Android Studio распознала локальные файлы jar в качестве библиотек для поддержки при кодировании в среде IDE, вам нужно сделать еще несколько шагов:

    4.1. Щелкните правой кнопкой мыши на модуле в левой панели и выберите « Open Library Settings .

    4.2. На левой панели диалогового окна выберите « Libraries .

    4,3. Нажмите знак + над панелью второй слева -> Java

    Меню

    4.4. Выберите свою локальную банку и добавьте ее в проект.

  5. Возможно, вам понадобится выполнить вышеприведенную команду ./gradlew еще раз

3 comments
4 Peter Arandorenko 01/19/2014
Для меня шаг № 2 сделал это. Благодарю.
Phil Freihofner 05/01/2015
Это сработало для меня. У меня Android Studio версии 1.2 Build 141.1890965, на Ubuntu. Почему вы говорите «как на Android Studio 2.5»? Это другая версия на Windows / Mac? (1a) Найти это было сложно. Комбинированный блок находится в левом верхнем углу области структуры проекта. Необходимо выбрать «Проект» в отличие от «Android» и расширить «приложение». (1b) Не добавлена ​​опция «добавить», но «Вставить» работало. (2) У меня была строка «compile fileTree (dir:« libs », include: ['* .jar])», но все равно пришлось добавить вашу явную одну строку. (4, 5) не требуется один раз (3) успешно. Благодаря!
Rahul Rastogi 05/18/2015
1 плюс для скриншотов, которые добавили u.

Ganesh Pandey 09/06/2015.

В right click

-> new -> module
-> import jar/AAR package
-> import select the jar file to import
-> click ok -> done 

Следуйте скриншотам ниже:

1:

Шаг 1

2:

введите описание изображения здесь

3:

введите описание изображения здесь

Вы увидите следующее:

введите описание изображения здесь

5 comments
Ganesh Pandey 09/20/2016
@CamConnor, я тоже так думаю .. Другие ответы устарели
sudobomb 09/20/2016
Да, это должен быть принятый ответ
Alessandro 11/23/2016
Это ответ
1 Dave 12/18/2016
Но это не признается как библиотекари. Например, редактор студии andriod: попробуйте импортировать пакет в импортированную банку, не распознанную.
Dave 12/18/2016
Не удалось найти способ удалить импортированный модуль таким образом.

saneryee 05/23/2017.

В Android Stuido мне нравится использовать Gradle для управления Gson lib.

Добавьте зависимость ниже в файле build.gradle.

repositories {mavenCentral()}

dependencies {compile 'com.google.code.gson:gson:2.2.4'} 

Все в порядке.

Вы также можете увидеть этот пост. Лучший способ интеграции сторонней библиотеки в студию Android

4 comments
2 j2emanue 11/07/2014
это правильный способ использования центрального репо.
Gary Drocella 05/04/2015
Этот метод является лучшим, потому что он использует maven.
1 Kitalda 06/16/2015
Просто не забудьте обновить номер версии до последней версии. На данный момент это 2.3.1, но проверьте ссылку
Sam 11/23/2016
Это единственное, что работает!

Jukurrpa 09/02/2015.

IIRC, просто используя «Добавить как библиотеку», недостаточно для его компиляции с проектом.

Проверьте помощь Intellij в добавлении библиотек в проект

Часть, которая вас больше всего интересует, такова:

File > Project Structure ) Откройте параметры модуля и выберите вкладку «Зависимости».

На вкладке «Зависимости» нажмите «Добавить» и выберите «Библиотека».

В диалоговом окне «Выбор библиотек» выберите одну или несколько библиотек и нажмите «Добавить выбранные».

Если библиотека не отображается в диалоговом окне, добавьте ее в настройки «Библиотеки», прямо под Модулями.

Вам больше не нужно добавлять compile files() , и библиотека должна быть правильно добавлена ​​в ваш проект.

5 comments
Ozzie 05/17/2013
Добавить как библиотеку уже добавить банку таким же образом. Поэтому я думаю, что результат тот же. Я попробую это позже.
jhirsch 05/18/2013
Добавить, поскольку библиотека делает это успешно - я нахожусь в той же лодке, что и Оззи, - ТОЧНАЯ такая же проблема.
Jukurrpa 05/18/2013
Хорошо, я думал, что Добавить, поскольку библиотека только добавила его в список библиотеки и не добавила его в зависимости от модулей.
Matt Holgate 10/22/2013
Когда я попробовал это, я обнаружил, что он добавил строки компиляции файлов () в мой файл build.gradle, но, казалось, использовал абсолютные пути к библиотекам (/libs/foo.jar). Я изменяю их на относительные пути (libs / foo.jar), которые исправили проблему для меня.
1 android learner 03/12/2015
спасибо .. его спас мой день

Helzgate 07/29/2016.

Все эти решения устарели. В Android Studio это очень просто:

Файл> Новый модуль ...

Следующий экран выглядит странно, например, вы выбираете какой-то виджет или что-то подобное, но держите его на первом снимке и под свитком и находите «Импорт JAR или пакет .AAR»,

Затем выберите « Project Structure из меню». Выберите app из открытого окна, затем выберите dependencies , затем нажмите кнопку « green plus button , выберите module dependency затем выберите модуль, который вы импортировали, затем нажмите « OK

2 comments
Gary Drocella 05/04/2015
Я думаю, что использование maven по-прежнему будет лучшим решением, особенно для крупномасштабных проектов, то есть предоставленных saneryee.
Daniele Testa 10/11/2015
Даже это кажется устаревшим. Просто поместите ваш .jar-файл в свой каталог «libs», и он автоматически будет скомпилирован в ваш проект. В Android Studio 1.4 уже настроена настройка по умолчанию, чтобы включить все файлы * .jar из каталога «libs».

user2084396 10/11/2013.

«компилировать файлы ...» работал для меня, но не больше. после большой боли, я обнаружил, что использование этого вместо этого работает:

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

Я понятия не имею, почему это имело значение, но, по крайней мере, проклятая вещь сейчас работает.

1 comments
1 scottyab 07/09/2014
Это работает для меня, однако недавно найденный иногда AS не поднимает новые / обновленные банки до тех пор, пока вы не выполните градиентную синхронизацию.

Vinayak Bevinakatti 05/12/2017.

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

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

введите описание изображения здесь

  1. Щелкните правой кнопкой мыши нужный модуль, где вы хотите добавить внешнюю библиотеку, затем выберите « New > Directroy и назовите его « libs »,
  2. Теперь скопируйте blah_blah.jar в папку ' libs '
  3. Щелкните правой кнопкой мыши blah_blah.jar, затем выберите « Add as Library.. ». Это автоматически добавит и добавит в build.gradle как compile files('libs/blah_blah.jar') и синхронизирует град. И все готово

Please Note : если вы используете сторонние библиотеки, лучше использовать dependencies которых скрипт Gradle автоматически загружает JAR и JAR зависимости, когда запускается скрипт градиента.

Пример: compile 'com.google.android.gms: play-services-ads: 9.4.0'

Узнайте больше о Gradle Dependency Mangement

1 comments
Saurabh Bhandari 05/11/2017
это лучший подход для добавления файлов jar в качестве библиотеки

sansa 07/24/2015.
  1. Загрузить файл библиотеки с веб-сайта
  2. Копировать из окна
  3. Вставить в папку lib из Project Explorer
  4. Ctrl + Alt + Shift + S open Структура проекта
  5. Выберите вкладку «Зависимости», добавьте файл, используя +
  6. Панель инструментов Синхронизация проекта с файлом градации с помощью кнопки

Это решило мою проблему. Попытайтесь, если кто-нибудь захочет получить более подробную информацию, дайте мне знать.


Fergara 09/11/2015.

Я сделал это, просто добавив одну строку для 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.

1 comments
Thufir 07/08/2017
не могли бы вы рассказать о том, что fileTree строка fileTree ?

Sandeep 10/29/2015.

1. Поместите банку (в моем случае, gson-2.2.4.jar ) в папку libs.

2. Убедитесь, что файлы компиляции ( libs/gson-2.2.4.jar ) находятся в файле build.gradle.

3. Теперь щелкните «Sync Project with Gradle files» (слева на кнопку менеджера AVD на верхней панели).

После того, как я сделал эти три, он начал работать нормально.


A.B. 07/23/2016.

Я нашел Dependency Manager для Android Studio довольно удобным и мощным для управления зависимостями сторонних разработчиков (например, упоминаемый здесь gson). Предоставление пошагового руководства, которое работало для меня (ПРИМЕЧАНИЕ. Эти шаги протестированы для Android Studio 1.6 и последующих версий на платформе Windows).

Step-1: перейдите к «Build> Edit Libraries and Dependencies ...», он откроет диалог «Структура проекта»,

введите описание изображения здесь

Step-2: Выберите «приложение», а затем выберите вкладку «Зависимости». Затем выберите «Добавить> 1 Библиотека зависимости»

введите описание изображения здесь

Step-3: появится диалоговое окно «Choose Library Dependency», укажите «gson» в поиске и нажмите «кнопка поиска»,

введите описание изображения здесь

Step-4: желаемая зависимость будет отображаться в списке поиска, выберите com.google.code.gson: gson: 2.7 (это последняя версия в то время, когда я написал ответ), нажмите OK

введите описание изображения здесь

Нажмите ОК в диалоговом окне «Структура проекта». Gradle будет соответствующим образом обновлять ваши скрипты сборки.

введите описание изображения здесь

Hope this would help :)

2 comments
A.B. 08/23/2016
Я нашел некоторые проблемы с этим подходом, работая над приложением, которое использует commons-io-2.5. При загрузке приложения в Google Developer Console отображается 0 устройств, поддерживаемых для подписанного apk. После исчерпывающего исследования выяснилось, что я должен разместить файл jar в файле app / libs / commons-io-2.5.jar и обновить зависимости в gralde, как это «компилировать файлы» («libs / commons-io-2.5.jar») ', не знаю, что я здесь делаю неправильно, и почему документация не распространяется на это.
imsrgadich 08/10/2017
Так оно и работает. Все остальные ответы не помогли. Android Studio 2.3.3

NarenderNishad 03/23/2015.

Загрузите и скопируйте файл .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


Pankaj kumar 06/23/2015.

В отличие от Eclipse нам не нужно загружать jar и помещать его в папку / libs. Gradle обрабатывает эти вещи, нам нужно только добавить зависимости Gradle, Gradle загружает его и кладет в кегель градиента.

Нам нужно добавить зависимости как:

Зависимости {compile 'com.google.code.gson: gson: 2.2.4'}

thats it Однако мы также можем загрузить jar & add, что в качестве библиотеки, но лучше всего добавить зависимости Gradle.

1 comments
1 chathura 08/26/2015
как узнать строку зависимости, которую нужно добавить? где я могу их найти?

huseyin 01/20/2015.

Вы можете сделать это с двумя вариантами.

первый простой способ.

Скопируйте файл .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-модуля, затем добавим этот модуль в любой модуль, который мы хотим.

import module ---> выберите файл .jar -> чем импорт в качестве .jar - введите описание изображения здесь

Затем CTRL + ALT + SHIFT + S -> sturure проекта -> выберите модуль, который вы хотите добавить в банку -> Dependencendies -> Dependency Module. build.gradle модуля будет обновляться автоматически. введите описание изображения здесь

1 comments
Aviv Ben Shabat 01/26/2015
Ницца. одно редактирование - теперь это «Новый модуль» (Android Studio 1.0.1). «Модуль импорта» отправляет вас другому мастеру.

Elshan 07/14/2016.

Ive сделал выше 3 steps и свое рабочее очарование для меня.

(I am using Android Studio 2.1.2)

введите описание изображения здесь

Step 1

  • Добавьте jar package name (в качестве примера compile 'com.squareup.okhttp3:okhttp:3.3.1' ) в скрипт построения градиента в файле build.gradle(Module:app) .

введите описание изображения здесь

Step 2: Щелкните правой кнопкой мыши папку app -> New -> Module

введите описание изображения здесь

Step 3: Нажмите « Import JAR/.AAR Package Затем просмотрите свой пакет. в качестве примера: OkHttp.jar

введите описание изображения здесь


vuhung3990 01/30/2015.
menu File -> project struct -> module select "app" -> dependencies tab -> + button 
-> File dependency -> PATH/myfile.jar 

Aby Mathew 07/23/2015.

Просто поместите файлы .jar в папку libs проекта Android.

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

эта строка кода в файле graddle apps сделает все остальное.

Happy Coding :)


Создайте папку libs. Добавьте файл .jar. Щелкните правой кнопкой мыши по нему, и вы найдете добавить jar в качестве зависимости. Нажмите здесь. Это все, что вам нужно сделать. Вы можете найти зависимости, добавленные в файл build.gradle.


idris yıldız 07/13/2015.

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').


mbo 07/13/2015.

В android Studio 1.1.0. Я решил этот вопрос, выполнив следующие шаги:

1: Поместите файл jar в каталог libs. (в Finder)

2: Откройте настройки модуля, перейдите в «Зависимости», в левом нижнем углу появится кнопка «плюс». Нажмите кнопку плюс, затем выберите «Зависимость файла». Здесь вы можете увидеть файл jar. Выберите его, и он будет разрешен.


IntelliJ Amiya 12/02/2015.

Шаг 1: Теперь под вашей app folder вы должны увидеть libs , если вы его не видите, а then create it .

Шаг 2. Drag & Drop the .jar file here , вы можете получить приглашение "This file does not belong to the project" , просто нажмите кнопку « OK .

Шаг 3: Теперь вы должны увидеть jar file under libs folder , щелкните правой кнопкой мыши на файле jar и выберите "Add as library", Click OK for prompt "Create Library"

Шаг 4: Теперь эта jar добавлена.

введите описание изображения здесь


user2573236 07/11/2013.

В Mac OS X:

  1. Добавить jar как library (перетащить jar в libs, щелкнуть правой кнопкой мыши как lib)

  2. Добавить компиляцию для build.grade

  3. Установите gradle v1.6 (используйте homebrew)

    • варить установку
    • gradle -v
    • если не v1.6, обновить homebrew
  4. gradle clean (rebuild android не работает)

Это меня разобрало.


Christina 12/27/2014.

Как и многие предыдущие, вы должны добавить

compile files('libs/gson-2.2.3.jar') 

в файл build.gradle.

Однако у меня есть проект в Android Studio, который был перенесен из Eclipse, и в этом случае папка «libs» называется «lib», поэтому для меня удаление «s» решило проблему.


Binod 07/08/2014.

compile fileTree(dir: 'libs', include: '*.jar') отлично работает, но не compile files(...) , протестированные с помощью Studio Beta 0.8.1


iberodev 09/25/2014.

Мой ответ в основном собирает некоторые из правильных, но неполных ответов, приведенных выше.

  1. Открыть build.gradle
  2. Добавьте следующее:

    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», которая будет содержать пакеты баннеров, которые необходимо использовать нашему приложению.

Но это также позволит поддерживать зависимость Maven. 'com.google.code.gson:gson:2.3' (как упоминалось в @saneryee) - это еще один рекомендуемый способ добавления зависимостей, которые находятся в центральном удаленном репозитории, а не в нашем / libs «локальном репозитории». Это в основном говорит о том, что gradle ищет эту версию этого пакета, и он говорит компилятору учитывать это при компиляции проекта (имея его в пути к классам)

PS: Я использую оба


user2779311 02/01/2015.

Для нового Android 1.0.2 в вашем файле build.gradle уже есть следующее:

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

Добавьте библиотеку jar в папку libs -> щелкните правой кнопкой мыши по библиотеке -> щелкните добавить в качестве библиотеки -> он попросит вас добавить проект для -> выберите проект -> нажмите ok. Следующая строка автоматически добавляется для сборки .gradle

компилировать файлы ('libs / android-query.jar')

Это сделало это для меня. больше ничего не требовалось. Я показал это для android aquery другой сторонней библиотеки для Android.


parasrish 06/08/2015.
  1. Добавлена ​​папка «libs» на уровне «app».
  2. Добавлены все «банки» в этом проекте.
  3. Затем выберите все банки в папке «libs»,
  4. щелкните правой кнопкой мыши на выбранных элементах и ​​скажите «добавить библиотеку»,
  5. то вы найдете опцию расширения jars в самом проекте проекта.

Я заметил, что структура проекта CTRL + ALT + SHIFT + S -> -> app-module -> Dependencies "уже имела запись как" (dir: 'libs', include: '* .jar') "под" compile-option ", изначально. И после добавления банок в соответствии с шагами, указанными выше, «build.gradle» получил записи для новых добавленных банок.


Ranjith Kumar 05/11/2016.

В Android Studio 2.1 я следую этому пути,

Goto app -> 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 готовы к использованию.

2 comments
Deni Erdyneev 05/12/2016
Почему вы не используете каталог libs?
Ranjith Kumar 05/12/2016
@ErdeniErdyneev Я даю другой подход для хранения файлов jar. почему я не использую активы? любые вопросы в моем подходе? Я готов исправить ошибки, если я ошибаюсь

user3686646 05/29/2014.

Сделай это :

Создайте папку libs в папке приложения. Добавьте файлы .jar в папку libs. Затем добавьте файлы .jar в зависимости от сборки build.gradle. Наконец, Sync проект с файлами Gradle.

Related questions

Hot questions

Language

Popular Tags