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


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

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

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

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

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

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

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

30 934

30 ответов:

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

  1. положите банку Gson (в моем случае,gson-2.2.4.jar) в libs папку
  2. щелкните его правой кнопкой мыши и нажмите "Добавить как библиотеку"
  3. обеспечить 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+

  4. сделайте чистую сборку (вы, вероятно, можете сделать это хорошо в Android Studio, но чтобы убедиться, что я перешел в терминал в корневую папку моего приложения и набрал gradlew clean. Я на Mac OS X, команда может быть другой в вашей системе

после того, как я сделал выше четырех, он начал работать нормально. Я думаю, что шаг "добавить как библиотеку" был тем, который я ранее пропустил, и он не работал, пока я его не очистил.

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

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

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

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

    dependencies {
        // ... other dependencies
        compile files('libs/<your jar's name here>')
    }
    
  3. Android Studio уже должна была установить оболочку gradlew. От в командной строке перейдите на верхний уровень вашего проекта (каталог, который имеет ).

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

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

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

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

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

    Menu

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

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

в проекте щелкните правой кнопкой мыши

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

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

1:

Step 1

2:

enter image description here

3:

enter image description here

вы увидите это:

enter image description here

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

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

enter image description here

  1. щелкните правой кнопкой мыши нужный модуль, в который вы хотите добавить внешнюю библиотеку, затем выберите New > Directroy и назовите его как - libs'
  2. скопировать blah_blah.банку в 'libs'
  3. щелкните правой кнопкой мыши blah_blah.фляги, затем выберите 'добавить в библиотеку..'. Это автоматически добавит и запись в построить.gradle как компиляции файлы ('libs / blah_blah.jar') и синхронизировать gradle. И вы сделали

Обратите Внимание : Если вы используете сторонние библиотеки, то лучше использовать зависимости где Gradle скрипт автоматически загружает банку и банку зависимостей, когда gradle запуск сценария.

Ex: compile ' com.гуглить.андроид.gms: play-услуги-объявления: 9.4.0'

подробнее о Gradle Dependency Mangement

  1. Скачать файл библиотеки с сайта
  2. копировать из Windows explore
  3. вставить в папку lib из Обозревателя проекта
  4. Ctrl+ Alt+Shift+S открыть структуру проекта
  5. выберите вкладку зависимости, добавьте файл с помощью +
  6. панель инструментов синхронизировать проект с файлом 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: Перейти " построить > редактировать библиотеки и зависимости..."это откроет диалог" проект Структура"

enter image description here

Шаг 2: Выберите "приложение", а затем выберите вкладку "зависимости". Затем выберите "Добавить > 1 зависимость библиотеки"

enter image description here

Шаг 3: Появится диалоговое окно "выбрать зависимость от библиотеки", укажите" gson "в поиске и нажмите кнопку"Поиск"

enter image description here

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

enter image description here

нажмите OK в диалоговом окне "структура проекта". Gradle соответствующим образом обновит ваши скрипты сборки.

enter image description here

надеюсь, что это поможет :)

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 .сосуд -- enter image description here

затем CTRL+ALT+SHIFT+S -- > project sturure -->выберите модуль, который вы хотите добавить a jar -- >Dependencendies --> зависимость модуля. строить.gradle модуля будет обновляться автоматически. enter image description here

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

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

эта строка кода в файле приложения graddle сделает все остальное.

Happy Coding :)

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

(Я использую Android Studio 2.1.2)

enter image description here

Шаг 1

  • добавить jar имя пакета (например compile 'com.squareup.okhttp3:okhttp:3.3.1') в gradle build script под построить.gradle (модуль:приложение).

enter image description here

Шаг 2: Право нажмите на кнопку app папку -> Новый -> Модуль

enter image description here

Шаг 3: клик импорт JAR/.Пакет AAR затем найдите свой пакет. в качестве примера: OkHttp.банку

enter image description here

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

на Mac OS X:

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

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

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

    • brew install gradle
    • gradle-v
    • если не v1. 6, обновить homebrew
  4. 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 была добавлена.

enter image description here

С Android Studio 3+:

вы должны просто иметь возможность просто скопировать файл jar в папку libs прямо под папкой приложения.

... myproject\app\libs\myfile.банку

затем выберите файлы проекта из раскрывающегося списка в окне проекты, щелкните правой кнопкой мыши на проекте, выберите Синхронизировать, чтобы увидеть файл в файлах проекта. Он автоматически добавит зависимости в файл gradle (модуль:приложение).

dependencies {
...
    implementation files('libs/myfile.jar')

вот еще один решение:

перейдите в представление файлы проекта (выберите файлы проекта из раскрывающегося списка).

enter image description here

Выберите Новый... Каталог, создайте папку с именем libs прямо под приложением.

enter image description here

Откройте проводник, скопируйте и вставьте файл Jar в папку libs.

В Android Studio щелкните правой кнопкой мыши файл jar и выберите Добавить в качестве библиотеки... из всплывающего окна меню.

enter image description here

вы должны увидеть файл, указанный в списке зависимостей в файле 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

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

  1. открыть сборки.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 для любого 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.

  1. добавлена папка " libs "на уровне"app".
  2. добавлены все "банки" в этом проекте.
  3. далее, выделил все банки, в папке "libs",
  4. щелкните правой кнопкой мыши на выбранных элементах и скажите "добавить библиотеку"
  5. затем вы найдете опцию расширения jars в самом Обозревателе проектов.

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