解决Context.getExternalFilesDir(null)返回null造成java.lang.NullPointerException的问题
问题产生:
今天在写一个日志工具类的时候,想把日志文件放在外存储设备的应用专用文件夹里,即,如:/mnt/sdcard/myPackageName /Android/data/files下.很自然的用起来Context.getExternalFilesDir(null)方法,但是在写好工具 类,测试时报java.lang.NullPointerException,懵了!
找了好久的解决方法:
- 有说是因为 权限问题,把< uses-permission android:name ="android.permission.WRITE_EXTERNAL_STORAGE" />写成了 < uses-permission android:name ="android.permissions.WRITE_EXTERNAL_STORAGE" />,注意是permission多加了个's';
- 有的说是Context获取问题,即,把context的初始化放在了类的构造函数里,而不是在OnCreate()里.
以上两种方法,试了,都没解决我的问题.
随后发现了问题:我的测试硬体是RK3188盒子,然后在logcat里发现了Failed to fstatat(/mnt/shell/emulated/0/Android/data/com.xm): Device or resource busy,这才反应过来是外存储设备被锁了,然后断电重启,问题解决,记录一下.