Jake Wharton の LRU ディスク キャッシュを使用して、ListView に表示されるビットマップを格納および取得しています。同じアクティビティ内からビットマップを保存してアクセスする限り、これは正常に機能します。ただし、アプリ内の他のアクティビティからキャッシュにアクセスしようとすると (つまり、同じ画像を 2 回ダウンロードする必要がなくなります)、NullPointerException が発生します。ここで何か不足していますか?これは、ファイルが削除される/削除されるメモリキャッシュではありません。内部ストレージ内の正しいディレクトリを指している限り、アプリ内のすべてのアクティビティからディスク キャッシュにアクセスできるようにすべきではありませんか?
01-14 22:53:44.465: E/AndroidRuntime(10720): java.lang.NullPointerException
01-14 22:53:44.465: E/AndroidRuntime(10720): at java.util.regex.Matcher.reset(Matcher.java:181)
01-14 22:53:44.465: E/AndroidRuntime(10720): at java.util.regex.Matcher.<init>(Matcher.java:94)
01-14 22:53:44.465: E/AndroidRuntime(10720): at java.util.regex.Pattern.matcher(Pattern.java:290)
01-14 22:53:44.465: E/AndroidRuntime(10720): at com.example.echofriendly.DiskLruCache.validateKey(DiskLruCache.java:629)
01-14 22:53:44.465: E/AndroidRuntime(10720): at com.example.echofriendly.DiskLruCache.get(DiskLruCache.java:375)
01-14 22:53:44.465: E/AndroidRuntime(10720): at com.example.echofriendly.DiskLruImageCache.containsKey(DiskLruImageCache.java:145)
01-14 22:53:44.465: E/AndroidRuntime(10720): at com.example.echofriendly.ChatroomFragment.getMessages(ChatroomFragment.java:309)
01-14 22:53:44.465: E/AndroidRuntime(10720): at com.example.echofriendly.ChatroomFragment.access$3(ChatroomFragment.java:284)
01-14 22:53:44.465: E/AndroidRuntime(10720): at com.example.echofriendly.ChatroomFragment$2.run(ChatroomFragment.java:94)
01-14 22:53:44.465: E/AndroidRuntime(10720): at java.lang.Thread.run(Thread.java:1019)