Google云端硬盘版NoClassDefFoundError

时间:2013-05-18 16:21:20

标签: android google-drive-api

我有一个包含Google云端硬盘的项目,而且一切正常。然后我执行了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私人图书馆打勾导出选项。大多数应用程序都在运行,例如Dropbox API也包含在项目中,但是当使用NoClassDefFoundError执行代码的Google Drive部分时,我仍然会收到错误。

如果我在Order& amp;中勾选Drive API导出标签I然后出现错误Dex Loader] Unable to execute dex: Multiple dex files define Lcom/google/api/client/googleapis/extensions/android/accounts/GoogleAccountManag‌​er;

3 个答案:

答案 0 :(得分:2)

您似乎正在导入定义类com.google.api.client.googleapis.extensions.android.accounts.GoogleAccountManag‌er的多个库。查看软件包管理器,在Android私有库下,尝试在那里打开.jar文件。您可能会在其中至少两个中找到此类(其中一个可能类似于google-api-client-android-1.13.2-beta.jar)。

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

答案 1 :(得分:1)

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

答案 2 :(得分:0)

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

首先我尝试下载Dredit,它运行正常!!所以我从属性中删除了google api(properties-> Java Build Path-> Libraries)。并从Dredit复制libs。你猜怎么着?问题依然存在。

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

  1. 删除googe api和所有相关的库。
  2. 关闭此项目
  3. 打开项目文件夹,然后删除并隐藏文件夹(以。开头)和生成的文件夹
  4. 重新包含项目。并复制文件表格Dredit
相关问题