1. 程式人生 > >解決Context.getExternalFilesDir(null)返回null造成java.lang.NullPointerException的問題

解決Context.getExternalFilesDir(null)返回null造成java.lang.NullPointerException的問題

問題產生:      今天在寫一個日誌工具類的時候,想把日誌檔案放在外儲存裝置的應用專用資料夾裡,即,如:/mnt/sdcard/myPackageName /Android/data/files下.很自然的用起來Context.getExternalFilesDir(null)方法,但是在寫好工具 類,測試時報java.lang.NullPointerException,懵了!       找了好久的解決方法:
  1.  有說是因為   許可權問題,把< uses-permission android:name ="android.permission.WRITE_EXTERNAL_STORAGE" />寫成了 < uses-permission android:name ="android.permissions.WRITE_EXTERNAL_STORAGE" />,注意是permission多加了個's';
  2. 有的說是Context獲取問題,即,把context的初始化放在了類的建構函式裡,而不是在OnCreate()裡.
以上兩種方法,試了,都沒解決我的問題. 隨後發現了問題:我的測試硬體是RK3188盒子,然後在logcat裡發現了Failed to fstatat(/mnt/shell/emulated/0/Android/data/com.xm): Device or resource busy,這才反應過來是外儲存裝置被鎖
了,然後斷電重啟,問題解決,記錄一下.