Android 执行驱动器文件列表.execute()会导致ClassNotFoundException
我一直在尝试将从Google Drive读取数据合并到我的Android应用程序中。我按照示例应用程序(DriveQuickstart-)的说明开始,遇到了相同的错误。问题是当我调用fileList.execute()时;在下面的代码中,调试器抱怨BaseDexClassLoader抛出了ClassNotFoundException。如果捕获此异常并打印消息,它会告诉我参数字符串不应为null。我确保我已经按照所有的方向设置了项目,因为我确信这是我的环境出了问题。我已经使用了Java构建路径和这个项目的Android目标(目前设置为Android+GoogleAPI),但没有任何帮助。任何想法都将不胜感激Android 执行驱动器文件列表.execute()会导致ClassNotFoundException,android,google-api,google-drive-api,Android,Google Api,Google Drive Api,我一直在尝试将从Google Drive读取数据合并到我的Android应用程序中。我按照示例应用程序(DriveQuickstart-)的说明开始,遇到了相同的错误。问题是当我调用fileList.execute()时;在下面的代码中,调试器抱怨BaseDexClassLoader抛出了ClassNotFoundException。如果捕获此异常并打印消息,它会告诉我参数字符串不应为null。我确保我已经按照所有的方向设置了项目,因为我确信这是我的环境出了问题。我已经使用了Java构建路径和这
private void downloadFile() {
Thread t = new Thread(new Runnable() {
@Override
public void run() {
try {
Files.List fileList = service.files().list().setQ("title = 'tester'");
FileList files = fileList.execute(); //This line causes an exception when executed.
ArrayList<File> myFiles = new ArrayList<File>(1);
myFiles.addAll(files.getItems());
File file = myFiles.get(0);
InputStream inStream = downloadFile(service,file);
String docText = convertStreamToString(inStream);
Log.v("TAG", docText);
}
catch (UserRecoverableAuthIOException e) {
startActivityForResult(e.getIntent(), REQUEST_AUTHORIZATION);
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
System.out.println(e.toString() );
}
}
});
t.start();
}
}使用伯德曼自己的解决方案,我得到了一个部分,其中我还添加了一个额外的捕获(例外e)来工作。尽管这可能只是一个半解 更新:我发现,如果我挂起线程的错误刚刚被吞没,驱动器快速启动应用程序就会工作。我注意到该应用程序在运行而未调试时工作正常。我在引起问题的那一行之后添加了一个额外的“catch”,现在我可以调试代码了,它工作得很好。但我觉得奇怪的是,这一例外似乎发生了,必须予以忽略鸟人1月23日20:06
从Eclipse菜单中选择项目>属性>Java构建路径>库 您是否尝试过在[java build path]的[order and export]上检查Android私有库
或者更新到最新的android sdk和google api版本?您是否尝试过遵循视频教程?抛出ClassNotFoundException是因为某些JAR丢失是的,我观看了视频教程,多次重新创建项目,但都出现了相同的错误,即使是样例项目。我想它是在Windows7机器上运行的,但我无法避免在这台XP机器上出现这种异常。如果您使用的是emulator,我还建议您使用真正的设备重试我正在使用真正的设备Droid RAZR with Android 4.0.4。我想可能是我的手机,但驱动程序在上面运行得很好。不知怎的,“驱动器快速启动”应用程序只运行过一次!但是尝试重现工作结果是徒劳无益的,在.execute()之后仍然存在类not found异常。我现在尝试在两台不同的机器上创建示例项目,但遇到了相同的问题,我每次都按照说明操作。
private void saveFileToDrive() {
Thread t = new Thread(new Runnable() {
@Override
public void run() {
try {
// File's binary content
java.io.File fileContent = new java.io.File(fileUri.getPath());
FileContent mediaContent = new FileContent("image/jpeg", fileContent);
// File's metadata.
File body = new File();
body.setTitle(fileContent.getName());
body.setMimeType("image/jpeg");
File file = service.files().insert(body, mediaContent).execute(); //Same exception encountered
if (file != null) {
showToast("Photo uploaded: " + file.getTitle());
startCameraIntent();
}
} catch (UserRecoverableAuthIOException e) {
startActivityForResult(e.getIntent(), REQUEST_AUTHORIZATION);
} catch (IOException e) {
e.printStackTrace();
}
}
});
t.start();