exceptionjava.lang.NoClassDefFoundError:com.google.android.gms.common.AccountPicker

我正在尝试快速入门:从Android Drive SDK 在Android上运行云端硬盘应用 。 我已经遵循了这个过程,但是当我在我的设备中运行应用程序(真实的应用程序)时,它会崩溃并出现以下exception:

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插件的API
  • 复制样本(我实际上做了复制粘贴)

    • 当然,我更正了包和类名

    • 此外,我还添加了应用程序的权限,甚至还有其他权限

我甚至添加了Google Play Android Developer API及其perimssions。

但是当我运行App时,它仍然会崩溃。 所有的图书馆似乎都很好。 我想知道它是否特定于Android APIv17,因为我的设备是APIv10和APIv15(我也添加了支持库)。

请帮忙。 请原谅我的英语不好。 谢谢。

我在jtwitter.jar库中遇到了同样的问题。 如果您正在运行Android Studio,则必须进行清理和构建(AS现在并不是真正做到的)。

转到命令行,导航到项目根目录并执行./gradlew clean

在你做这件事之前

确保将.jar文件添加到/libs文件夹中(如果您使用的是build 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]') } 

然后,您可以构建和运行您的项目。