3

我需要比较两个复杂的自定义对象。我没有覆盖 equals 方法,而是使用了 apache.commons.lang3 方法 EqualsBuilder.reflectionEquals(obj1, obj2)。

它适用于大多数 Android 设备。但对于小米而言,应用程序崩溃,但出现以下异常:

Fatal Exception: java.lang.NoSuchMethodError: No static method b(Ljava/lang/Object;Ljava/lang/Object;)Lorg/apache/commons/lang3/tuple/Pair; in class Lorg/apache/commons/lang3/tuple/Pair; or its super classes (declaration of 'org.apache.commons.lang3.tuple.Pair' appears in /system/framework/framework.jar)
   at org.apache.commons.lang3.builder.EqualsBuilder.getRegisterPair(EqualsBuilder.java:141)
   at org.apache.commons.lang3.builder.EqualsBuilder.isRegistered(EqualsBuilder.java:159)
   at org.apache.commons.lang3.builder.EqualsBuilder.reflectionAppend(EqualsBuilder.java:537)
   at org.apache.commons.lang3.builder.EqualsBuilder.reflectionAppend(EqualsBuilder.java:506)
   at org.apache.commons.lang3.builder.EqualsBuilder.reflectionEquals(EqualsBuilder.java:433)
   at org.apache.commons.lang3.builder.EqualsBuilder.reflectionEquals(EqualsBuilder.java:386)
   at org.apache.commons.lang3.builder.EqualsBuilder.reflectionEquals(EqualsBuilder.java:325)
   at 

我在带有版本的gradle中有以下行:

 implementation 'org.apache.commons:commons-lang3:3.8'

我不确定出了什么问题,以及为什么它会在少数设备上失败而在其他设备上都可以正常工作。

4

0 回答 0