1

为什么会这样:

long diffInMis = date2.getTime() - date.getTime();
diffInHour = TimeUnit.MILLISECONDS.toHours(diffInMis);

扔这个:

java.lang.IllegalAccessError:试图访问方法 java.util.concurrent.TimeUnit.toHours:(Z)V

?

我在开发者控制台中有这个错误,无法重现。知道我只是自己做数学,但我很好奇。

设备:HTC Legend Android 2.2

答案:API < 9 中缺少 TimeUnit

4

1 回答 1

2

Java 5 没有toHours,但Java 6 有。我的猜测是您在运行时使用的 TimeUnit 类版本不包括 toHours。当您的代码无法从您的引用位置访问字段或方法时,就会发生这种异常。

于 2012-10-25T19:38:41.757 回答