异常java.lang.NoClassDefFoundError:com.google.android.gms.common.AccountPicker

时间:2013-04-24 03:39:14

标签: java android google-drive-api

我正在尝试使用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插件添加了API
  • 复制样本(我实际上是复制粘贴)

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

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

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

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

请帮忙。请原谅我糟糕的英语。谢谢。

1 个答案:

答案 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]')
}

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