Android getExternalCacheDir()返回null

时间:2013-01-18 01:54:58

标签: android bitmap imageview android-sdcard

我正在尝试实施Loading Bitmaps effeciently

中描述的最佳做法

我遇到了麻烦,因为这一行:

Utils.getExternalCacheDir(context)
DiskLruCache.java 中的

返回null,这意味着当我尝试调用时,我得到NullPointerException .getPath()

2 个答案:

答案 0 :(得分:29)

尽管有些神秘的NullPointerException被抛出,但实际问题是我的应用程序没有WRITE_EXTERNAL权限,因此系统拒绝我尝试使用ExternalDir进行缓存。不幸的是,在显示位图中使用的代码中,这种情况发生在足够低的水平上,如果没有经过适当的许可,那么异常并不表示SecurityException正常情况下会写入SD卡。

要修复,只需添加以下内容:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

到您的清单。

答案 1 :(得分:7)

如果您在没有任何外部存储的设备或模拟器上运行,也会发生这种情况。