4

我正在尝试快速入门:从 Google Drive SDK在 Android 上运行 Drive 应用程序。我遵循了漏洞过程,但是当我在我的设备(真实设备)中运行该应用程序时,它会崩溃并出现以下异常:

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及其权限。

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

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

4

1 回答 1

10

我对 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]')
}

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

于 2013-05-21T17:52:53.130 回答