我正在尝试使用Google Drive SDK中的Quickstart: Run a Drive App on Android。我已经遵循了这个过程,但是当我在我的设备(真实的)中运行应用程序时,它崩溃了以下异常:
java.lang.NoClassDefFoundError: com.google.android.gms.common.AccountPicker
最后,它在本代码的第二行指出了我的来源:
credential = GoogleAccountCredential.usingOAuth2(this, DriveScopes.DRIVE);
startActivityForResult(credential.newChooseAccountIntent(), REQUEST_ACCOUNT_PICKER); // <- This one
我的讨论来自于我完成了文章指示我做的所有事情:
我已生成证书
启用API(带证书指纹)
在Eclipse中创建并配置了android项目
复制样本(我实际上是复制粘贴)
当然,我更正了包名和类名
此外,我还添加了应用的权限,甚至还有其他权限,以及
我甚至添加了 Google Play Android Developer API 及其权限。
但是当我运行App时,它仍然会崩溃。所有的图书馆似乎都很好。我想知道它是否特定于Android APIv17,因为我的设备是APIv10和APIv15(我也添加了支持库)。
请帮忙。请原谅我糟糕的英语。谢谢。
答案 0 :(得分:10)
我在jtwitter.jar库中遇到了同样的问题。如果你正在运行Android Studio,你必须做一个干净的&amp;构建(AS现在没有真正做到)。
转到命令行,导航到项目根目录并执行./gradlew clean
在你这样做之前
确保您的.jar文件已添加到/libs
文件夹中(如果您使用的是版本17或更高版本,则必须为libs
,而不是lib
)。右键单击并选择添加为库...
然后您将不得不编辑build.gradle文件(位于/src
目录中)。
看起来应该是这样的:
buildscript {
repositories {
maven { url 'http://repo1.maven.org/maven2' }
}
dependencies {
classpath 'com.android.tools.build:gradle:0.4'
}
}
apply plugin: 'android'
dependencies {
compile files('libs/android-support-v4.jar')
}
android {
compileSdkVersion 17
buildToolsVersion "17.0.0"
defaultConfig {
minSdkVersion 5
targetSdkVersion 16
}
}
将dependencies
块更改为如下所示:
dependencies {
compile files('libs/android-support-v4.jar')
compile files('[path/to/.jar]')
}
然后您可以构建并运行您的项目。