1

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

0 回答 0