2013-05-18 62 views
0

我有一个项目,其中包括谷歌驱动器,它都工作得很好。然后我执行了Android SDK的升级,Eclipse ADT Plugin和Google Drivie不再有效,我不明白为什么。NoClassDefFoundErrror与谷歌驱动器

我已将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) 

返回无论它看上去那样我尽量不使,所以任何帮助,将不胜感激任何差别的误差。

UPDATE 我试过在Raghunandan的建议中勾选Android专用库的导出选项。大多数应用程序正在运行,如Dropbox API也包含在项目中,但我仍然在执行代码的Google Drive部分时出现错误,并显示NoClassDefFoundError。

如果我打勾的订单&导出选项卡中的驱动器API,然后我得到一个错误Dex Loader] Unable to execute dex: Multiple dex files define Lcom/google/api/client/googleapis/extensions/android/accounts/GoogleAccountManag‌​er;

回答

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文件。

+0

感谢这工作。它一直在困扰着我很多年。还有一个步骤我没有做到。我将Google Play服务包含在构建路径中并导出,但未将其作为项目的android部分中的库添加。谢谢你的帮助。它一直在窃听我的天 – Boardy

+1

@ferini我有同样的问题[这里](http://stackoverflow.com/questions/23510953/java-lang-noclassdeffounderror-com-google-api-services-drive-drive)。而且就像你说的**驾驶课有2个罐子**。一个在'googl-play-services.jar'中,另一个在'google-api-services-drive-v2-rev123-1.18.0-rc.jar'中,但为什么在给出正确的导入路径之后会发生这种情况? –

1

尝试将项目 - >属性 - >订单&出口并确保Android的私家藏书被检查的项目和您正在使用的所有其他库项目。

+0

谢谢我已经试过这个,但我现在得到以下错误''Dex Loader]无法执行dex:多个dex文件定义Lcom/google/api/client/googleapis/extensions /机器人/账户/ GoogleAccountManager; [2013-05-18 21:29:11 - AndroidPasswordManager]转换为Dalvik格式失败:无法执行dex:多个dex文件定义Lcom/google/api/client/googleapis/extensions/android/accounts/GoogleAccountManager;'' – Boardy

+0

您是否提及过Google Play服务库?也试试 更新Android SDK和ADT后,请确保您已安装Android Build工具。 转到您的android sdk管理器检查是否安装了Andorid Build Tools。如果未安装,则安装相同。 – Raghunandan

+0

是的谷歌播放服务在项目中引用。我已经检查过SDK管理器,一切都是最新的,并且安装了Android SDK构建工具 – Boardy

0

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

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

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

  1. 删除googe api和所有相关的库。
  2. 关闭这个项目
  3. 打开项目文件夹,删除和隐藏文件夹(开始)和生成的文件夹
  4. 再重新加入项目。并复制库的形式Dredit