NoClassDefFoundError: java.util.Objects Android
En dos proyectos que he contribuido he tenido este error:
FATAL EXCEPTION: main java.lang.NoClassDefFoundError: java.util.Objects
Eso porque he implementado hashCode
y equals
métodos usando la clase Objects
.
@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); }
Cuando compilo no obtengo errores ni advertencias. ¿Por qué podría estar sucediendo?
Tengo el mismo problema en mi nuevo juego. Y pienso, sucede, porque el diverso fabricante móvil proporciona los teléfonos con diversa versión de jvm.
Mi solución de este problema era copiar la implementación de methos iguales de Objetos a mi proyecto. Sucio, pero el trabajo:
public static boolean equals(Object a, Object b) { return (a == b) || (a != null && a.equals(b)); }
Estaba equivocado. Mi dispositivo era android 4.1, que es api nivel 16 y la clase Objects
es desde api nivel 19.