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`.

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

 

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

 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, команда может отличаться на ваша система

 (function(w, d, n, s, t) {
 w[n] = w[n] || [];
 w[n].push(function() {
 Ya.Context.AdvManager.render({
 blockId: "R-A-248011-3",
 renderTo: "yandex\_rtb\_R-A-248011-3",
 async: true
 });
 });
 t = d.getElementsByTagName("script")[0];
 s = d.createElement("script");
 s.src = "//an.yandex.ru/system/context.js";
 s.async = true;
 t.parentNode.insertBefore(s, t);
 })(this, this.document, "yandexContextAsyncCallbacks");

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

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

 

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

 (function(w, d, n, s, t) {
 w[n] = w[n] || [];
 w[n].push(function() {
 Ya.Context.AdvManager.render({
 blockId: "R-A-248011-4",
 renderTo: "yandex\_rtb\_R-A-248011-4",
 async: true
 });
 });
 t = d.getElementsByTagName("script")[0];
 s = d.createElement("script");
 s.src = "//an.yandex.ru/system/context.js";
 s.async = true;
 t.parentNode.insertBefore(s, t);
 })(this, this.document, "yandexContextAsyncCallbacks");

* Создайте папку "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` еще раз

 

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

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

```

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

1

 [![Шаг 1]()](/img/00a401dac6945c1f6e47bb7a0c3b5c6b.png)

2:

 [![введите описание изображения здесь]()](/img/290e119cf31028638e0856bf35734837.png)

3:

 [![введите описание изображения здесь]()](/img/355769c911f074435f8de6f3bd8f4632.png)

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

 [![введите описание изображения здесь]()](/img/00dcbc7995fa4158da5a86ab9a2dcb21.png)

 

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

Отметьте [Intellij help](http://www.jetbrains.com/idea/webhelp/configuring-module-dependencies-and-libraries.html) о добавлении библиотек в проект

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

>  (В `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](/questions/11519/the-best-way-to-integrate-third-party-library-in-android-studio)

 

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

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

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

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

 

>  Простые шаги для добавления внешней библиотеки в  **Android Studio**
> 
>  * Если вы находитесь в Android View в проводнике проекта, измените его на вид проекта, как показано ниже.
> 
>  [![введите описание изображения здесь]()](/img/ae1ccee92f24678089dfd4be685379ba.png)
> 
>  2. Щелкните правой кнопкой мыши нужный модуль, где вы хотите добавить внешнюю библиотеку, затем выберите "Создать" > "Directroy" и назовите его как 'LIBS'
> 3. Теперь скопируйте blah\_blah.jar в папку 'libs'
> 4. Щелкните правой кнопкой мыши 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 Масштабирование зависимостей](https://docs.gradle.org/current/userguide/artifact_dependencies_tutorial.html#sec:repositories_tutorial)
> 
> 
> 

 

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

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

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

 

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

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

 

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

 

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

  **Шаг 1:**
Goto "Build > Edit Libraries and Dependencies..." откроет диалог "Структура проекта" 

 [![введите описание изображения здесь]()](/img/a51bf2488662fcd605dc0dbb12d67df2.png)

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

 [![введите описание изображения здесь]()](/img/9758b84f17975e289c5a100c7d008a91.png)

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

 [![введите описание изображения здесь]()](/img/dd3d78d416e9522c747980112284071c.png)

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

 [![введите описание изображения здесь]()](/img/be19ddc124f194eaf6db74382ab4c42c.png)

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

 [![введите здесь описание изображения]()](/img/22bb525a8d4d4f78a8d8c89b11ea9c1c.png)

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

 

>    **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'
}

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

 

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

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

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

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

 

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

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

  [![enter image description here]()](/img/049e491ce4257bb6a34bde42ebe0b5f1.png)

  **Шаг 1**

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

 [![enter image description here]()](/img/a9cdf34f1e53381305004c7f226fb90c.png)

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

  [![enter image description here]()](/img/488b71fa7efc8bfbe80968521d872dbc.png)

  **Шаг 3:** Нажмите **Импорт пакета JAR/.AAR,** затем просмотрите пакет. как пример: [OkHttp.jar](https://square.github.io/okhttp)

  [![enter image description here]()](/img/9878821f5f99023b610e102e919e92df.png)

 

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

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

  Скопируйте файл.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]()

 

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

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

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

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

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

```
 

 С 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]()](/img/c71d4e7d97d87cee1a702a319ec15cb7.png)

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

  [![enter image description here]()](/img/a1f2df7476eaceb08af87369a722dd7f.png)

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

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

  [![enter image description here]()](/img/c3559b5622a31ba7e864255aa9c66050.png)

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

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

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

 
```
import com.xxx.xxx;

```
 

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

```
 

В Mac OS X:

* Добавить jar как библиотеку (перетащите jar в libs, щелкните правой кнопкой мыши добавить как lib)
* Добавить компиляцию в `build.grade`
* Установите `gradle v1.6` (используйте доморощенный)

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

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

 

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

 

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

 

В 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`**.. p > 

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

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

 [![введите описание изображения здесь]()](/img/6ab7db52781c16d35804bdbebf9ca3f1.png)

 

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

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

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

```
{include=[*.jar], dir=libs}

```
 

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

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

```

в файл build.gradle.

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

 

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.

 

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

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

  [![enter image description here]()](/img/30a5681c6b2e7fc041691927bee5db39.png)

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

 

 `compile fileTree(dir: 'libs', include: '*.jar')` работает отлично, но не `compile files(...)` проверили с помощью Studio Beta 0.8.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: Я использую оба