0

我有一个包含 Google Drive 的项目,并且一切正常。然后我执行了 Android SDK 和 Eclipse ADT 插件的升级,Google Drivie 不再工作,我不明白为什么。

我已将 Drive API 添加到我的项目以及 Google Play 服务中,并勾选要导出的复选框。我已经完成了一个干净的构建,我已经删除了我的应用程序的 bin 目录,重新启动了 eclipse,重新进行了干净的构建,但是一旦我运行我的应用程序的应该显示谷歌帐户选择器的部分,应用程序就会崩溃。

以下是logcat中返回的错误

05-18 17:17:09.089: E/AndroidRuntime(16747): FATAL EXCEPTION: main
05-18 17:17:09.089: E/AndroidRuntime(16747): java.lang.NoClassDefFoundError: com.google.android.gms.common.AccountPicker
05-18 17:17:09.089: E/AndroidRuntime(16747):    at com.google.api.client.googleapis.extensions.android.gms.auth.GoogleAccountCredential.newChooseAccountIntent(GoogleAccountCredential.java:171)

无论我尝试什么,它似乎都没有任何区别。

更新

我尝试按照 Raghunandan 的建议勾选 Android Private Libraries 的导出选项。大多数应用程序都在工作,例如项目中也包含的 Dropbox API,但是当执行代码的 Google Drive 部分时,我仍然收到错误,并出现 NoClassDefFoundError。

如果我在 Order & Export 选项卡中勾选 Drive API,则会出现错误Dex Loader] Unable to execute dex: Multiple dex files define Lcom/google/api/client/googleapis/extensions/android/accounts/GoogleAccountManag‌​er;

4

3 回答 3

2

看起来您正在导入多个定义 class 的库com.google.api.client.googleapis.extensions.android.accounts.GoogleAccountManag‌er。查看 Android Private Libraries 下的 Package Manager 并尝试在那里打开 .jar 文件。您可能会在其中至少两个中找到这个类(其中一个可能类似于google-api-client-android-1.13.2-beta.jar)。

尝试从构建路径中排除其中一个 jar 文件。如果你没有错误,你就完成了。如果有错误,请尝试排除其他 jar 文件。如果错误仍然存​​在,您可以尝试以 zip 格式打开 jar 并手动删除GoogleAccountManager.class文件。

于 2013-05-21T14:54:18.280 回答
1

尝试转到项目 -> 属性 -> 订购和导出,并确保为您的项目和您正在使用的所有其他库项目检查 Android 私有库。

于 2013-05-18T16:23:04.960 回答
0

我有同样的问题,现在解决了。

首先我尝试下载Dredit,它工作正常!!所以我从属性(属性-> Java 构建路径-> 库)中删除了 google api。并从 Dredit 复制库。你猜怎么着?问题依然存在。

所以我做了以下步骤来重建整个项目,这个问题已经解决了。希望它可以帮助你。

  1. 删除 googe api 和所有相关的库。
  2. 关闭此项目
  3. 打开项目文件夹并删除和隐藏文件夹(以 . 开头)和生成的文件夹
  4. 再次重新包含项目。并从 Dredit 复制库
于 2013-06-13T09:07:27.617 回答