Android getExternalCacheDir()返回null

我正在尝试实施加载位图中描述的最佳实践

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

Utils.getExternalCacheDir(context) 

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

Solutions Collecting From Web of "Android getExternalCacheDir()返回null"

尽pipe有些神秘的NullPointerException被抛出,但实际的问题是我的应用程序没有WRITE_EXTERNAL权限,所以系统拒绝了我尝试使用ExternalDir进行caching。 不幸的是,这种情况发生在用于有效显示位图的代码中的级别足够低,以至于如果没有经过适当的许可,试图写入SD卡时,Exception通常不会表示SecurityException

要解决这个问题,只需添加:

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

到你的清单。

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