2013-01-18 11 views
9

を返します。アンドロイドgetExternalCacheDir()私は、この行ので、私はトラブルに実行した<a href="http://developer.android.com/training/displaying-bitmaps/load-bitmap.html">Loading Bitmaps effeciently</a></p> <p>で説明したベスト・プラクティスを実装しようとしている、ヌル

Utils.getExternalCacheDir(context) 

DiskLruCache.javaの内側には戻っているがnullを返します。つまり、私が.getPath()を呼び出そうとしたときにNullPointerExceptionを取得することを意味します。

答えて

29

実際に問題が投げられるNullPointerExceptionがやや暗めですが、 WRITE_EXTERNAL権限を持っていないため、システムはキャッシングにExternalDirを使用しようとしました。残念ながら、これは1つが、適切な許可を得ずにSDカードへの書き込みをしようとしていた場合、それは通常どおり例外がSecurityExceptionを示していないことをビットマップEffecientlyの表示に使用されるコードでは十分に低いレベルで起こっていました。マニフェストに

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

:単純にこれを追加する修正するには

+7

:名=「android.permission.WRITE_EXTERNAL_STORAGE」 アンドロイド:maxSdkVersion は< アンドロイド許可を使用しています=「18」/> – Climbatize

+5

そして、いくつかのロリポップに私のアプリは、SDKのバージョン19と22 –

+1

を知っている、これが壊れているので、私は最大のSDKを削除することをお勧め構築します – DroidHeaven

7

あなたが任意の外部ストレージせずにデバイスまたはエミュレーター上で実行している場合にも発生することができます。あなたはmaxSdkVersionのparemeterでこの権限を使用することができますアンドロイド4.4以降、この許可はもはやキャッシュ目的 のために必要とされるで

+0

に対して少なくともこのため、同じクラッシュを報告した@Climbatize ...愚かな私は –

+0

は私の答えを変更し、ユーザーの市場にはそのようなデバイスを伝播する不採算で、外部ストレージなしのAndroidデバイスはその稀ではありません。デバイスに外部ストレージがあり、カードが存在しないか、またはマウントされていない場合にも起こります。 –

+0

Genymotionエミュレータでこのエラーが発生しました。 – agamov

関連する問題

 関連する問題