由于空指针异常导致我的程序崩溃。堆栈跟踪的类声明导致空指针异常
剪断:
java.lang.NullPointerException
at com.my.GRTRecTimeSortComparator.compare(SourceFile:15)
那当然好。但我的问题是,第15行是类声明:
15 public class GRTRecTimeSortComparator implements Comparator<GRTRecord> {
16 @Override
17 public int compare(GRTRecord rec1, GRTRecord rec2) {
18
19 int returnVal=rec1.getRecordCalendar().compareTo(rec2.getRecordCalendar());
20 return returnVal;
21 }
22}
它呼唤出来的功能比较全,但我不觉得这有是问题。每条记录都有一个唯一的日历分配给它。
任何想法?我在这里做错了什么?
编辑:在响应查询:
没有,没有什么奇怪的类本身,除了我写的事实。
我正在使用Proguard。也许混淆是不正确的取代东西?
我正在为记录编写测试。他们不应该是null
,也不应该Calendars
;我之前立即使用它们,并取得良好效果。
也许我只是错误地通过了ArrayList
。
编辑2:
插入类的日志行永远不会运行。 无论我对类添加或做什么,空指针总是会解析为类声明行。
删除了Proguard混淆,但仍然没有骰子。
我真的很沮丧。
编辑3:
对于未来用户:
Proguard的废墟您的堆栈跟踪。这是上述的原因。如果遇到问题,请移除proguard。
原因实际上是数据集中的损坏记录。
很可能,您正在阅读的源代码与编译代码中的堆栈跟踪不同步。尝试从干净的建筑,然后重新运行。 – 2012-03-27 16:27:18