我正在尝试实施Loading Bitmaps effeciently
中描述的最佳做法我遇到了麻烦,因为这一行:
Utils.getExternalCacheDir(context)
DiskLruCache.java 中的返回null,这意味着当我尝试调用时,我得到NullPointerException
.getPath()
答案 0 :(得分:29)
尽管有些神秘的NullPointerException
被抛出,但实际问题是我的应用程序没有WRITE_EXTERNAL权限,因此系统拒绝我尝试使用ExternalDir进行缓存。不幸的是,在显示位图中使用的代码中,这种情况发生在足够低的水平上,如果没有经过适当的许可,那么异常并不表示SecurityException
正常情况下会写入SD卡。
要修复,只需添加以下内容:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
到您的清单。
答案 1 :(得分:7)
如果您在没有任何外部存储的设备或模拟器上运行,也会发生这种情况。