正如我在标题中已经提到的,当我从 GooglePlayStore 卸载我的应用程序并重新安装它时,我发现了一些奇怪的问题。如您所见,App Cache Directory 没有被删除,该 App 名为net.example:
shell@gt510wifi:/storage/emulated/0/Android/data $ ls -la
-rw-rw---- root sdcard_rw 0 2015-01-01 01:01 .nomedia
...
drwxrwx--x u0_a80 sdcard_rw 2017-01-27 09:30 flipboard.boxer.app
drwxrwx--x u0_a197 sdcard_rw 2017-03-01 17:47 net.example
drwxrwx--x root sdcard_rw 2016-12-29 14:00 shaders
app is uninstalled, but cache and data directory persist:
shell@gt510wifi:/storage/emulated/0/Android/data $ ls -la
-rw-rw---- root sdcard_rw 0 2015-01-01 01:01 .nomedia
...
drwxrwx--x u0_a80 sdcard_rw 2017-01-27 09:30 flipboard.boxer.app
drwxrwx--x u0_a197 sdcard_rw 2017-03-01 17:47 net.example
drwxrwx--x root sdcard_rw 2016-12-29 14:00 shaders
shell@gt510wifi:/storage/emulated/0/Android/data $
从文档:
注意:当用户卸载您的应用程序时,该目录及其所有内容都将被删除。此外,系统媒体扫描程序不会读取这些目录中的文件,因此无法从 MediaStore 内容提供程序访问它们。因此,您不应该将这些目录用于最终属于用户的媒体,例如使用您的应用程序拍摄或编辑的照片,或者用户使用您的应用程序购买的音乐——这些文件应该保存在公共目录中。
https://developer.android.com/guide/topics/data/data-storage.html#filesExternal
所以这似乎是一个三星错误,在重新安装应用程序后导致权限错误:
E/BitmapFactory: Unable to decode stream: java.io.FileNotFoundException: /storage/emulated/0/Android/data/net.example/cache/FileCache/20b7a74246f5d80d92ba2e3d1918331cfb98fd11: open failed: EACCES (Permission denied)
也许有人在三星设备上遇到过类似的错误?
编辑:我已经"allowBackup:false"
在 Manifest 中实现了,但问题仍然存在。