我最近下载了 Android Studio 来开发 Android 应用程序(我来自 Eclipse),并且在我自己的项目中使用外部库和/或外部 JAR 文件时遇到问题。注意:以下测试是在 Android Studio 中从头开始创建的新应用程序项目上进行的。
示例 1:JAR 导入。
从 Google 下载 Admobs SDK 的新副本。
将库 jar 复制
GoogleAdMobAdsSdk-6.4.1.jar
到项目的 /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
,问题似乎是尽管能够在代码和设计编辑器中成功导入类,但在编译时,它无法解析导入。这是日志的相关部分:(此处为完整堆栈跟踪)
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
有任何想法吗?