目前在我的应用程序中,当我使用 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"/>