現在、私のアプリケーションでは、context.getExternalCacheDir() を使用すると NullPointerExceptions が報告されています。NullPointerException は !cacheDir.exists() で発生し、cacheDir は null であり、この時点で NullPointerException がスローされます。
奇妙なのは、以前に外部ストレージがマウントされているかどうかを確認したことです。コードは次のとおりです。
public FileCache(Context context){
if (android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED))
cacheDir= context.getExternalCacheDir();
// sometimes return null even the external storage mounted
else
cacheDir=context.getCacheDir();
if(!cacheDir.exists()) // if cacheDir is null throws NullPointerException
cacheDir.mkdirs();
}
私の androidManifest.xml には、外部ストレージへの書き込み権限があることに注意してください。
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>