Недавно я загрузил 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
Но опять же, импорт хорошо работает в редакторе, и зависимость там:
Также стоит отметить, что без попытки добавления библиотеки /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
Любые идеи?