2013-01-18 81 views

回答

29

尽管有些隐晦的NullPointerException被抛出,但实际问题是我的应用程序on没有WRITE_EXTERNAL权限,所以系统拒绝我尝试使用ExternalDir进行缓存。不幸的是,这种情况发生在用于有效显示位图的代码中的级别足够低,以至于异常并不表示SecurityException,因为它通常会在没有正确许可的情况下尝试写入SD卡时发生。

要解决简单地补充一点:

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

到您的清单。

+7

在Android 4.4+此权限,不再需要高速缓存的目的 您可以使用此权限与maxSdkVersion paremeter: <使用许可权 机器人:名字= “android.permission.WRITE_EXTERNAL_STORAGE” 机器人:maxSdkVersion =“18”/> – Climbatize

+5

在一些棒棒糖构建这是坏的,所以我建议删除最大sdk ...愚蠢我知道 –

+1

@Climbatize我的应用程序报告了SDK版本19和22相同的崩溃。 – DroidHeaven

7

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

+0

至少这在用户市场上传播这样的设备是无利可图的 –

+0

改变了我的答案,没有外部存储的android设备并不那么少见。如果设备具有外部存储器,但卡不存在或未安装,也可能发生。 –

+0

我在Genymotion模拟器上遇到这个错误。 – agamov