Android Studio - Импорт внешней библиотеки/Jar

Недавно я загрузил Android Studio для разработки приложений для Android (я прихожу из Eclipse), и у меня возникают проблемы с использованием внешних библиотек и/или внешних файлов JAR вместе с моим собственным проектом. ПРИМЕЧАНИЕ. Следующие тесты были проведены в проекте new, созданном с нуля в Android Studio.

Пример 1: Импорт JAR.

  • Загрузите новую копию SDK Admobs из Google.

  • Скопируйте библиотеку jar GoogleAdMobAdsSdk-6.4.1.jar в папку project/libs/.

  • В проводнике проекта щелкните правой кнопкой мыши на недавно добавленном library.jar и нажмите "Добавить в библиотеку".

Технически в этот момент все работает, импорт работает очень хорошо, редактор макета показывает предварительный просмотр виджета AdView и все такое. Проблема только заключается в том, что она не компилируется успешно.

Вход с консоли:

Gradle: 
FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':APITests:compilePaidDebug'.
> Compilation failed; see the compiler error output for details.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

Could not execute build using Gradle distribution 'http://services.gradle.org/distributions/gradle-1.6-bin.zip'.

Я попытался запустить gradlew compileDebug --stacktrace, и проблема заключается в том, что, несмотря на возможность импорта классов успешно и в редакторе кода и дизайна, во время компиляции он не может разрешить импорт. Здесь соответствующая часть журнала: (full stacktrace здесь)

java:6: error: package com.google.ads does not exist
import com.google.ads.AdRequest;    
java:7: error: package com.google.ads does not exist
import com.google.ads.AdView;
java:11: error: cannot find symbol
AdView mAdView;
symbol:   class AdView
location: class MainActivity
java:22: error: cannot find symbol
mAdView = (AdView)this.findViewById(R.id.adView);
symbol:   class AdView
location: class MainActivity
java:23: error: cannot find symbol
mAdView.loadAd(new AdRequest());
symbol:   class AdRequest
location: class MainActivity
5 errors
:Test:compileDebug FAILED

Но опять же, импорт хорошо работает в редакторе, и зависимость там:

enter image description here

Также стоит отметить, что без попытки добавления библиотеки /JAR проекты компилируются просто отлично.

Затем я попытался отредактировать файл build.gradle, чтобы включить новую библиотеку, например:

dependencies {
compile files('libs/android-support-v4.jar', 'libs/GoogleAdMobAdsSdk-6.4.1.jar')
}

На этот раз он успешно скомпилировался, но приложение теперь закроет закрытие, поскольку, по-видимому, он не может найти определенный класс из lib в пакете приложений.

Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.ads.AdView" on path: /data/app/com.foo.test-1.apk

Любые идеи?

Ответ 1

Итак,

Шаги, которые нужно выполнить, чтобы импортировать JAR в ваш проект с помощью Android Studio 0.1.1:

  • Загрузите файл library.jar и скопируйте его в папку/libs/внутри проекта приложения.
  • Откройте файл build.gradle и отредактируйте свои зависимости, чтобы включить новый .jar файл:

compile files('libs/android-support-v4.jar', 'libs/GoogleAdMobAdsSdk-6.4.1.jar')

  • Файл → Закрыть проект
  • Откройте командную строку в корневом каталоге проекта, т.е. 'C:\Users\Username\AndroidStudioProjects\MyApplicationProject\'
  • В командной строке введите gradlew clean, дождитесь его завершения.
  • Повторно запустите проект приложения в Android Studio.
  • Тестируйте свое приложение, и оно должно работать успешно.

Ответ 2

Вам не нужно закрывать проект и перейти в командную строку, чтобы вызвать класс: clean. Перейдите в Build- > Rebuild Project

Ответ 3

Легкий способ, и он работает для меня. Использование Android Studio 0.8.2.

  • Перетащите файл jar в папку lib.
  • Нажмите "Sync Project с кнопкой Gradle Files".

enter image description here

Ответ 4

"здесь простое решение

1. Создайте папку с именем libs под каталогом приложений, в любом случае в любом каталоге проекта.

2. Скопировать вставить вашу библиотеку в папку libs

3 .You simply copy the JAR to your libs/ directory and then from inside Android Studio, right click the Jar that shows up under libs/ > Add As Library..

Мир!

Ответ 5

Вот как я получил его специально для файла admob sdk jar:

  • Перетащите файл jar в папку libs.
  • Щелкните правой кнопкой мыши файл jar и выберите Добавить библиотеку теперь файл jar представляет собой библиотеку, которая позволяет добавить ее в путь компиляции.
  • Откройте файл build.gradle (обратите внимание, что по крайней мере два файла build.gradle, не используйте корневой, который использует тот, что в области вашего проекта).
  • Найти раздел зависимостей (для меня я пытался использовать файл-банкросс admob -GoogleAdMobAdsSdk) например.

    dependencies {
       compile files('libs/android-support-v4.jar','libs/GoogleAdMobAdsSdk-6.3.1.jar')
    }
    
  • Пройдите в settings.gradle и убедитесь, что он выглядит примерно так:

    include ':yourproject', ':yourproject:libs:GoogleAdMobAdsSdk-6.3.1'
    
  • Наконец, Go to Build → Rebuild Project

Ответ 6

вы экспортируете проект из Eclipse, а затем импортируете проект из Android Studio, это должно решить вашу проблему, откройте проект eclipse, не импортируя его из Android Studio, вы можете вызвать проблемы, посмотрите: (Извините мой язык, я говорю по-испански). http://developer.android.com/intl/es/sdk/installing/migrate.html

Ответ 7

У меня была проблема с невозможностью загрузить файл jar в папку libs в Android Studio. Если вы добавили JAR файл в папку libs, просто откройте файл build.gradle и сохраните его, не редактируя ничего. Если вы добавили эту строку

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

сохраните его и очистите проект. В следующее время сборки Android Studio загрузит файл JAR.

Надеюсь, что это поможет.

Ответ 8

Я использую Android Studio 0.5.2. Поэтому, если ваша версия ниже моей, мой ответ может не сработать для вас.

3 способа добавить новый Jar в ваш проект:

  • Меню Файлы → Структура проекта
  • Просто нажмите " F4"
  • в разделе "Навигация по Проекту", правый клик в любой библиотеке java и контекстное меню, затем нажмите " Открыть параметры библиотеки"

Появится окно структуры проекта.

В левом столбце нажмите "Библиотеки", затем посмотрите на правую панель, где есть знак "+" плюс, и нажмите на нее, затем введите путь к новой библиотеке.

Убедитесь, что новая библиотека находится в папке "project\libs \", иначе вы можете получить неработающую ссылку при сохранении исходного кода проекта.

Ответ 9

В настоящее время я использую Android Studio 1.4.

Для импорта и добавления библиотек я использовал следующий поток →

1. Press **Alt+Ctr+Shift+S** or Go to **File --> Project** Structure to open up the Project Structure Dialog Box.

2. Click on **Modules** to which you want to link the JAR to and Go to the Dependency Tab.

3. Click on "**+**" Button to pop up Choose Library Dependency.

4. Search/Select the dependency and rebuild the project.

Я использовал вышеупомянутый подход для импорта библиотек поддержки v4 и v13.

Я надеюсь, что это поможет и очистит поток.

Ответ 10

Я использую android studio 0.8.6 и для импорта внешней библиотеки в проект, вставьте эту библиотеку в папку libs и внутри build.gradle напишите путь этой библиотеки внутри зависимостей, подобных этому компилировать файлы ('libs/google-play-services.jar')

Ответ 11

В Android Studio (шахта 2.3.1) перейдите в раздел "Структура файла:

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

Ответ 12

Проверьте требования к версии libs. Возможно, lib пытается вызвать метод из более высокой версии Android. Попробуйте добавить библиотеки совместимости приложений.

Если все остальное не удается, перейдите из сборки Gradle в сборку Eclipse.

Удалите и перестройте свои папки в стиле eclipse и удалите все, кроме вашего кода. Затем перезагрузите проект своими библиотеками.

Как только он вернется, вернитесь к Gradle, если хотите.