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 ответов

Решение

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

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

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

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

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

    dependencies {
        // ... other dependencies
        compile files('libs/<your jar's name here>')
    }
    
  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 командовать еще раз

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

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

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

1:

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

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

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

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

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

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

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

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

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

    • заваривать грейдл
    • gradle -v
    • если не v1.6, обновите homebrew
  4. Gradle чистый (перестроить Android не работает)

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

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

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

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

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

  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, первоначально. И после добавления банки в соответствии с шагами, указанными выше, build.gradle получил записи для новой добавленной банки, сам.

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

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

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

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

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

Другие вопросы по тегам