Google Drive getToken类未找到异常

时间:2013-02-06 09:12:28

标签: android google-drive-api google-play-services

我在我的Android应用程序中集成了Google云端硬盘,当我使用Android版本2.3.6在设备上调试应用程序时,当我调用它时,我得到ClassNotFoundException:

mCredential.getToken();

其中mCredential设置如下:

mCredential = GoogleAccountCredential.usingOAuth2(context, DriveScopes.DRIVE);

我在Debug选项卡中看到了:

Thread [<13> Thread-15] (Suspended (exception ClassNotFoundException))  
<VM does not provide monitor information>   
PathClassLoader.findClass(String) line: 240 
PathClassLoader(ClassLoader).loadClass(String, boolean) line: 551   
PathClassLoader(ClassLoader).loadClass(String) line: 511    
GoogleAuthUtil.f(Context) line: not available   
GoogleAuthUtil.getToken(Context, String, String, Bundle) line: not available    
GoogleAuthUtil.getToken(Context, String, String) line: not available    
GoogleAccountCredential.getToken() line: 192    
GoogleDrive.checkIfUserIsAuthenticated(Activity, boolean) line: 411 
GoogleDrive.access$4(GoogleDrive, Activity, boolean) line: 403  
GoogleDrive$1.run() line: 98

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

我知道这是一个老问题,但我也把头发拉过这个。对我来说,ClassNotFoundException是因为缺少字符串资源。显然,Google Play服务包含资源,必须作为库项目导入,而不是仅将.jar添加为依赖项。在Eclipse中执行此操作的说明如下:http://developer.android.com/google/play-services/setup.html

一旦我完成了这些说明,我就会遇到一个构建错误,说明多个dexed库包含某些类或类似的东西。这个错误原来是因为我现在有两个引用google-play-services.jar。要修复该错误,请在项目资源管理器视图下右键单击bin目录,然后单击“删除”。这将删除带有google-play-services.jar的多个副本的dexedLibs文件夹。此时我在项目的根目录中以及“Android Dependencies”下引用了google-play-services.jar。我右键单击项目根目录中的引用,然后转到Build Path - &gt;从构建路径中删除以摆脱它。