Drive API中AppFolder的父文件夹错误无效

MMa*_*ian 8 android google-drive-api google-drive-android-api

我收到一个无效的父文件夹错误,我已经看到使用资源ID而不是驱动器ID的解决方案,但这是一个不同的场景.

我正在尝试访问AppFolder,这只是使用GoogleApiClient,如下所示:

this.appFolder = Drive.DriveApi.getAppFolder(mGoogleApiClient);
Run Code Online (Sandbox Code Playgroud)

当我稍后尝试在其中创建文件时,我得到上述错误.

DriveFolder.DriveFileResult fileResult = appFolder.createFile(mGoogleApiClient, changeSet, driveContentsResult.getDriveContents()).await();
Run Code Online (Sandbox Code Playgroud)

然后fileResult.getStatus()给了我错误.

这曾经对我有用.不同的是,我在Google云端硬盘上手动清空了应用的数据(删除隐藏的应用数据).但我没有断开应用程序 - 所以我认为appFolder将继续以相同的方式工作......

到目前为止,唯一的解决方法是卸载应用程序,但这样我就丢失了数据.

这是可重复的.请帮忙.

sea*_*npj 3

虽然这不能解决您的问题,但您的问题引起了我的兴趣,因此我使用此演示进行了一些测试(遵循此代码中的“appfolder” )。这是我学到的:

首先,我可以使用以下顺序重现您的问题

1/ getAppFolder(mGAC)  
2/ create folder DEMOROOT in app folder
3/ create folder 2015-10 in DEMOROOT  
4/ create file with content in 151022-075754 in 2015-10  

5/ list full tree ... result \DEMOROOT\2015-10\151022-075754  
6/ read content of 151022-075754 ... OK
Run Code Online (Sandbox Code Playgroud)

到目前为止,一切都很好。无需断开连接,我就可以前往

drive.google.com > Settings > Manage Apps > Options > Delete hidden app data
Run Code Online (Sandbox Code Playgroud)

现在,应用程序文件夹中应该没有对象,我运行:

1/ getAppFolder(mGAC)  
2/ list full tree ... result \DEMOROOT\2015-10\151022-075754  
3/ read content of 151022-075754 ... FAIL
Run Code Online (Sandbox Code Playgroud)

如您所见,在我的情况下,getAppFolder(mGAC)返回可以使用的有效 DriveFolder (DriveId)。甚至 DriveId 字符串看起来也一样。文件夹/文件列表返回有效对象。这是不应该的,但我知道我必须依靠延迟,因此列表结果可能会在稍后更改以反映删除。尝试读取文件内容失败。

几分钟后(GDAA 可能同步),相同的列表尝试失败,结果仍然可以理解,但在应用程序文件夹中创建任何对象(文件夹/文件)的另一次尝试失败,并出现“无效的父文件夹”错误,正如您所指出的。断开/重新连接没有帮助,因此该应用程序被干掉了。

这指出了一个应该解决的严重错误。与SO 30172915中的情况相同,未受过教育的用户的操作可能会造成无法挽回的损害 - Android 应用程序数据丢失且没有已知的补救措施。


归档时间:

查看次数:

1481 次

最近记录:

8 年,11 月 前