我需要比较两个复杂的自定义对象。我没有使用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
我在下面的一行中添加了以下版本:
implementation 'org.apache.commons:commons-lang3:3.8'
我不确定出了什么问题以及为什么它在少数设备上会失败并在其他设备上都能正常工作。