問題產生:
今天在寫一個日志工具類的時候,想把日志文件放在外存儲設備的應用專用文件夾里,即,如:/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,這才反應過來是外存儲設備被鎖了,然后斷電重啟,問題解決,記錄一下.