gpt4 book ai didi

android - Google Drive Android SDK 在文件上传时不断崩溃

转载 作者:行者123 更新时间:2023-11-29 01:56:08 25 4
gpt4 key购买 nike

我正在做一个项目,我正在测试 Google Drive SDK 的实现,但我在尝试将文件上传到 SD 卡时遇到问题。

上传完成后出现错误

02-23 23:38:54.960: E/AndroidRuntime(9160): FATAL EXCEPTION: Thread-2652
02-23 23:38:54.960: E/AndroidRuntime(9160): java.lang.NullPointerException
02-23 23:38:54.960: E/AndroidRuntime(9160): at java.net.URI.parseURI(URI.java:353)
02-23 23:38:54.960: E/AndroidRuntime(9160): at java.net.URI.<init>(URI.java:204)
02-23 23:38:54.960: E/AndroidRuntime(9160): at com.google.api.client.http.GenericUrl.<init>(GenericUrl.java:100)
02-23 23:38:54.960: E/AndroidRuntime(9160): at com.google.api.client.googleapis.media.MediaHttpUploader.upload(MediaHttpUploader.java:269)
02-23 23:38:54.960: E/AndroidRuntime(9160): at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:408)
02-23 23:38:54.960: E/AndroidRuntime(9160): at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:328)
02-23 23:38:54.960: E/AndroidRuntime(9160): at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.execute(AbstractGoogleClientRequest.java:449)
02-23 23:38:54.960: E/AndroidRuntime(9160): at com.BoardiesITSolutions.googledrivetest.MainActivity$3.run(MainActivity.java:127)
02-23 23:38:54.960: E/AndroidRuntime(9160): at java.lang.Thread.run(Thread.java:856)

下面是我用来执行上传的代码

private void saveFileToDrive()
{
Thread thread = new Thread(new Runnable() {

@Override
public void run() {
try
{
String storageDir = Environment.getExternalStorageDirectory().getPath();
fileUri = Uri.fromFile(new java.io.File(storageDir + "/BoardiesPasswordManager/android_download.xml"));
java.io.File fileContent = new java.io.File(fileUri.getPath());
FileContent mediaContent = new FileContent("text/xml", fileContent);

com.google.api.services.drive.model.File body = new com.google.api.services.drive.model.File();
body.setTitle("Boardies Password Manager");
body.setMimeType("text/xml");

com.google.api.services.drive.model.File file = service.files().insert(body, mediaContent).execute();
//Update file = service.files().update(body.getId(), body, mediaContent);
if (file != null)
{
//Toast.makeText(MainActivity.this, "File Uploaded: " + file.getTitle(), Toast.LENGTH_LONG).show();
Log.d("GoogleDrive", "File Uploaded");
}

}
catch (UserRecoverableAuthIOException e)
{
startActivityForResult(e.getIntent(), REQUEST_AUTHORISATION);
}
catch (IOException e)
{
e.printStackTrace();
}
}
});
thread.start();
}

我认为崩溃发生在以下行:

com.google.api.services.drive.model.File file = service.files().insert(body, mediaContent).execute();

我不明白为什么会这样,而且这个错误也不是很有用。我不是 Null,因为 fileContentmediaContentfileUri 不为空。

它成功地询问我想使用哪个帐户并询问我是否要授予上传权限所以我看不出有什么问题。

感谢您提供的任何帮助。

仅供引用,我使用了 https://developers.google.com/drive/quickstart-android#step_2_enable_the_drive_api 中的教程

最佳答案

我设法找到了问题所在,但 Edward van Raak 提供了帮助。

正如所建议的那样,部分问题与我使用的不同开发 PC 有关,我忘记将不同的客户端 SHA1 指纹添加到 API 控制台。但是,这并没有解决问题,因为抛出了相同的异常。

然后我删除了 Google Play 服务 jar 文件并删除了 Google Drive API(请注意,您现在会遇到构建错误)。

然后我重新添加了 google play services jar 文件并使用 Google API Eclipse 插件重新添加了 google drive API 并重新构建了项目,现在我可以再次成功上传文件了。

关于android - Google Drive Android SDK 在文件上传时不断崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15047076/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com