我的应用程序中有一个适配器,它可以扩充帖子并在 ListView
中显示它们。每个帖子都有一张图片,因此使用LruCache
来存储图片。
该应用程序完全运行良好,但崩溃了两三次,我无法意识到问题出在哪里。就在上次,我可以从 LogCat 获取此日志:
E/AndroidRuntime(2407): Caused by: java.lang.NullPointerException: key == null || value == null
仅当最近安装应用程序时才会发生崩溃(当我从设备中删除应用程序并再次安装时)!当我第一次打开应用程序并开始快速上下滚动时,有时会崩溃。 (它不会一直发生,它是完全随机的!)
之后,它就不会再崩溃了...:/
我认为这与LruCache和空缓存有关。我看到this question ,但这不是我的问题!我确实在代码中检查了空缓存:
if (MainActivity.thumbnailsCache.get(postID) != null)
{
imageViewThumbnail.setImageBitmap(MainActivity.thumbnailsCache.get(postID));
} else {
new DownloadAndSetImageTask(thumbnailURL).execute();
}
有什么建议吗?
PS:我知道我的问题没有足够的细节,但这就是我所掌握的全部信息!
最佳答案
根据LruCache.java line 164 ,LruCache
仅在一种情况下抛出带有该消息的 NullPointerException
- 当您尝试使用 null 键或值调用 put
时。
所以我会找出在缓存上调用 put
的位置,看看那里写入了哪些键和值,然后从那里开始。或者,您可以在 LruCache.java
的 put
方法中放置一个断点,看看会发生什么。
关于java - NullPointerException:键== null ||值==空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32837639/