2013-01-18 80 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