小米HM 1SW java.lang.NoSuchMethodError

小米HM 1SW java.lang.NoSuchMethodError,java,android,proguard,Java,Android,Proguard,我看到下一行发生了奇怪的碰撞: java.lang.NoSuchMethodError: org.apache.commons.lang3.builder.EqualsBuilder.a 是的,我使用proguard进行模糊处理,但在我随身携带的其他设备上没有看到相同的崩溃。同时,我解包了apk,并看到了这个带有这个方法的类 我有一个假设: 有人在玩apk 设备有些奇怪,尤其是类加载器 不幸的是,我无法验证我的假设,因为我无法实际访问此设备 可能您遇到过这样的错误,或者您有其他信息可以说明问题

我看到下一行发生了奇怪的碰撞:

java.lang.NoSuchMethodError: org.apache.commons.lang3.builder.EqualsBuilder.a
是的,我使用proguard进行模糊处理,但在我随身携带的其他设备上没有看到相同的崩溃。同时,我解包了apk,并看到了这个带有这个方法的类

我有一个假设:

  • 有人在玩apk
  • 设备有些奇怪,尤其是类加载器
  • 不幸的是,我无法验证我的假设,因为我无法实际访问此设备


    可能您遇到过这样的错误,或者您有其他信息可以说明问题?

    声明:我不知道问题的根源

    我遇到过这个问题,并通过告诉ProGuard不要混淆Apache Commons库来解决它


    -keep class org.apache.commons.lang3.*{*}

    我尝试了
    -keep class
    解决方案,效果很好,但在大约3K个方法中,它确实使APK方法计数更高

    更好的解决办法是

    -keepnames类org.apache.commons.lang3.*{*;}
    


    因为它将保留您使用的类/方法名称,避免崩溃,但允许删除未使用的类/方法名称。

    Jose,谢谢您的回答。这确实是一种变通办法。你能确认问题已经解决了吗?你们能确认剩下的代码不会再产生同样的问题吗?Eugen,我只能用一台小米设备进行测试,一切正常。也就是说,我无法确认是否有相同或相似的东西不会再次出现,因为我无法理解根本原因。非常感谢!什么是设备名称?接受此答案作为临时解决方案,并寻找原因和适当的修复。谢谢你,何塞!你找到合适的解决办法了吗?我也有同样的问题,关于小米Redmi和
    org.apache.commons.lang3.StringUtils.join
    。将整个Apache Commons保存在APK中不是一个好的解决方案,这与ProGuard的想法背道而驰。酷!现在接受你的回答