Android lstat失败:设备或资源繁忙-清除应用程序上的数据后无法创建包文件夹
场景:运行我的应用程序一次后,我进入设置->应用程序->应用程序并单击清除数据。再次尝试运行应用程序时,无法恢复应用程序正常运行所需的一些文件。对context.getExternalFilesDir(null)的调用返回一个null指针。尝试使用null指针创建文件时,会尝试在根文件夹(即:“\myFileName.txt”)中创建文件,而根文件夹不是我希望文件进入的位置,也是系统的只读部分 在看了这里的许多问题后,我可以略过这些Android lstat失败:设备或资源繁忙-清除应用程序上的数据后无法创建包文件夹,android,Android,场景:运行我的应用程序一次后,我进入设置->应用程序->应用程序并单击清除数据。再次尝试运行应用程序时,无法恢复应用程序正常运行所需的一些文件。对context.getExternalFilesDir(null)的调用返回一个null指针。尝试使用null指针创建文件时,会尝试在根文件夹(即:“\myFileName.txt”)中创建文件,而根文件夹不是我希望文件进入的位置,也是系统的只读部分 在看了这里的许多问题后,我可以略过这些 这不是权限问题,如果我不清除数据,我可以写文件,直到我的心满
- 这不是权限问题,如果我不清除数据,我可以写文件,直到我的心满足
- 这似乎也不是一个“我们留下了对文件的锁定或引用”的问题,因为文件夹不存在,我没有收到LSAT错误,lsof没有列出任何文件,即使我不能在我的包名下查看链接
lstat 'com.myapps.package' failed: Device or resource busy
就这样
lsof报告包名称下没有任何文件打开。尝试扫描文件列表似乎毫无用处,因为大多数文件都无法解析(我的设备没有根目录,因此无法获得根目录访问权限,使其正确显示信息)
基本上,我已经完成了我可以在这里找到的东西,并通过谷歌尝试,看看为什么第二次运行的应用程序似乎无法创建其包文件夹
哦,如果有关系的话,我正在使用Android OS 4.2.2(API 17)你能使用Environment.getExternalStorageState()检查媒体的状态吗 然后,您可以了解应用程序与外部存储的当前连接状态
Returns the current state of the primary "external" storage device.
Returns
one of MEDIA_UNKNOWN, MEDIA_REMOVED, MEDIA_UNMOUNTED, MEDIA_CHECKING, MEDIA_NOFS, MEDIA_MOUNTED, MEDIA_MOUNTED_READ_ONLY, MEDIA_SHARED, MEDIA_BAD_REMOVAL, or MEDIA_UNMOUNTABLE.
在两种状态(好和坏)下,getExternalStorageState()报告“已装入”作为其状态。这个问题似乎只与应用程序的文件夹有关,而不是与设备本身有关。谢谢你。