项目上遇到如下:
项目背景:
对某个系统应用需要保存一份文件到oem分区路径下,代码测试没问题提交后,部分人员测试出保存文件时必现失败。
04-20 17:10:30.176 7958 8023 W System.err: java.io.IOException: No such file or directory
04-20 17:10:30.176 7958 8023 W System.err: at java.io.UnixFileSystem.createFileExclusively0(Native Method)
04-20 17:10:30.177 7958 8023 W System.err: at java.io.UnixFileSystem.createFileExclusively(UnixFileSystem.java:281)
04-20 17:10:30.177 7958 8023 W System.err: at java.io.File.createNewFile(File.java:1008)
首先,就不相信是selinux权限或用户权限的问题,因为测试是异地,user版本,调试来说相对困难,但是一直定位不到具体原因。
经过寻求驱动同事帮助,定位到原因可能是对应oem分区丢失。
经过排查发现,版本的刷机脚本中没有刷写oem的镜像,所以就存在部分人员在刷机操作中误删了oem分区,但后续版本中刷机脚本并未刷写oem分区,导致设备中缺失了oem,程序保存文件是找不到路径,出现异常。
解决:1.和项目组讨论,如何保证oem分区丢失问题;
2.或者换用到/sdcard/路径