NoClassDefFoundError:java.util.Objects Android

时间:2015-02-19 18:11:04

标签: android

在我贡献的两个项目中,我遇到了这个错误:

FATAL EXCEPTION: main
java.lang.NoClassDefFoundError: java.util.Objects

这是因为我使用hashCode类实施了equalsObjects方法。

@Override
public int hashCode() {
    int hash = 7;
    hash = 97 * hash + Objects.hashCode(this.image);
    hash = 97 * hash + Objects.hashCode(this.car);
    return hash;
}

@Override
public boolean equals(Object obj) {
    if (obj == null) {
        return false;
    }
    if (getClass() != obj.getClass()) {
        return false;
    }
    final SummaryContent other = (SummaryContent) obj;
    if (!Objects.equals(this.image, other.image)) {
        return false;
    }
    return Objects.equals(this.car, other.car);
}

编译时,我不会收到错误或警告。为什么会发生这种情况?

2 个答案:

答案 0 :(得分:4)

我在新游戏中遇到同样的问题。我认为,它发生了,因为不同的移动设备制造商为手机提供不同版本的jvm。

我对这个问题的解决方法是将对象的实现从对象复制到我的项目中。它很脏,但工作:

public static boolean equals(Object a, Object b) {
    return (a == b) || (a != null && a.equals(b));
}

答案 1 :(得分:3)

我错了。我的设备是android 4.1,api级别16,类Objects自api级别19以来。