在 android 中调用 getFilesDir() 来获取一个文件的绝对路径,发现这个函数返回的值不太一样。
-
有的时候返回 /data/data/[package-name]/files
-
有的时候返回 /data/user/0/[package-name]/files
我通过 adb shell 可以看到文件在 /data/data/[package-name]/files 里,但是有的时候因为返回的路径是第二种情况,导致使用 FileInputStream 打开时,抛出 FileNotFoundException.
查阅了一些资料,发现 /data/user/0 是 /data/data 的一个软链接。在 stackoverflow 上找到一个类似的问题,但是没人回答:
请问下怎么搞?
如果 getFilesDir 会出现这种异常,考虑别直接获取 files 文件夹路径。我觉得这是虚拟机的问题