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

Я пытаюсь использовать новую 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.

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

+947
источник поделиться
34 ответа
  • 1
  • 2

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

  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 файлов. )

    Редактировать: использовать 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 который также необходим, как указали другие]

+1486
источник

Вот инструкции по добавлению локального файла 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

    Menu

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

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

+263
источник
другие ответы

Связанные вопросы


Похожие вопросы

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

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

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

1

Шаг 1

2:

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

3:

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

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

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

+107
источник

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

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

Наиболее интересная вам часть:

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

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

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

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

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

+46
источник

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

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

repositories {mavenCentral()}

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

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

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

+44
источник

Все эти решения устарели. Это действительно легко в Android Studio:

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

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

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

+39
источник

Простые шаги для добавления внешней библиотеки в Android Studio

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

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

  1. Щелкните правой кнопкой мыши нужный модуль, где вы хотите добавить внешнюю библиотеку, затем выберите "Создать" > "Directroy" и назовите его как 'LIBS'
  2. Теперь скопируйте blah_blah.jar в папку 'libs'
  3. Щелкните правой кнопкой мыши 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 Масштабирование зависимостей

+34
источник

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

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

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

+33
источник
  • Загрузите файл библиотеки с веб-сайта
  • Копирование из окна поиска
  • Вставить в папку lib из Project Explorer
  • Ctrl + Alt + Shift + S открыть структуру проекта
  • Выберите вкладку "Зависимости", добавьте файл, используя +
  • Панель инструментов Синхронизировать проект с файлом gradle с помощью кнопки

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

+16
источник

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

+15
источник

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

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

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

+12
источник

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

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

3. Теперь нажмите "Проект синхронизации с Gradle файлами" (слева на кнопку менеджера AVD на верхней панели).

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

+9
источник

Загрузите и скопируйте ваш файл .jar в папку libs затем добавьте следующие строки в build.gradle:

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.google.code.gson:gson:2.3.1'
}

Не забудьте нажать "Синхронизировать сейчас"

+8
источник

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

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

зависимости {реализация 'com.google.code.gson: gson: 2.2.4'}

Вот и все. Однако мы также можем скачать jar и добавить его в виде библиотеки, но лучше всего добавлять зависимости Gradle.

+6
источник

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

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

enter image description here

Шаг 1

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

enter image description here

Шаг 2: Щелкните правой кнопкой мыши папку приложения -> Создать → Модуль

enter image description here

Шаг 3: Нажмите Импорт пакета JAR/.AAR, затем просмотрите пакет. как пример: OkHttp.jar

enter image description here

+6
источник

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

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

Скопируйте файл.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 - enter image description here

Затем нажмите сочетание клавиш CTRL + ALT + SHIFT + S → структура проекта → выберите нужный модуль, чтобы добавить банку → Зависимости → Зависимость модуля. build.gradle модуля будет обновляться автоматически. enter image description here

+5
источник

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

Затем добавьте эту строку кода в файл приложения gradle:

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

Для плагина Android gradle 3.0 и более поздних версий лучше использовать это:

    implementation fileTree(dir: 'libs', include: ['*.jar'])
+5
источник

С Android Studio 3+:

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

... myproject\app\libs\myfile.jar

Затем выберите Project Files из выпадающего списка в окне Projects, щелкните правой кнопкой мыши по проекту, выберите Synchronize, чтобы увидеть файл в Project Files. Он автоматически добавит зависимости в файл Gradle (Модуль: приложение).

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

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

Перейдите в представление "Файлы проекта" (выберите "Файлы проекта" в раскрывающемся списке).

enter image description here

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

enter image description here

Откройте File Explorer, скопируйте и вставьте файл JAR в папку libs.

В Android Studio щелкните правой кнопкой мыши файл JAR и выберите "Добавить как библиотеку..." во всплывающем меню.

enter image description here

Вы должны увидеть файл, указанный в списке зависимостей в файле Gradle:

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

Откройте свой Java файл и добавьте туда инструкцию import:

import com.xxx.xxx;
+5
источник
menu File -> project struct -> module select "app" -> dependencies tab -> + button 
-> File dependency -> PATH/myfile.jar
+4
источник

В Mac OS X:

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

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

  • Установите gradle v1.6 (используйте доморощенный)

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

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

+3
источник

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

+3
источник

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

+3
источник

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

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

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

+3
источник

Шаг 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.

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

+3
источник

Я прочитал все ответы здесь, и все они, похоже, охватывают старые версии Android Studio!

С проектом, созданным с помощью Android Studio 2.2.3, мне просто нужно было создать каталог libs в app и разместить там свою банку. Я сделал это с моим файловым менеджером, не нужно нажимать или редактировать что-либо в Android Studio.

Почему это работает? Откройте Build/Edit Libraries и Dependencies, и вы увидите:

{include=[*.jar], dir=libs}
+3
источник

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

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

в файл build.gradle.

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

+2
источник
  1. Добавлена папка libs на уровне app.
  2. Добавлены все jars в этом проекте.
  3. Затем выберите все банки в папке libs,
  4. щелкните правой кнопкой мыши на выбранных элементах и скажите add library
  5. тогда вы найдете опцию расширения jars в самом проводнике проекта.

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

+2
источник

В Android Studio 2.1 я следую так,

Перейти в приложение → src-> main → папка assets (если недоступно, создайте его) → поместите ваши JAR файлы

enter image description here

В вашем 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 файлы готовы к использованию.

+2
источник

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

+1
источник

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

  • Открыть 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 для ЛЮБОЙ банки. Хорошей практикой является создание такой папки "libs", которая будет содержать пакеты jar, которые необходимо использовать нашему приложению.

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

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

+1
источник
  • 1
  • 2

Посмотрите другие вопросы по меткам или Задайте вопрос