小米HM 1SW java.lang.NoSuchMethodError

时间:2015-04-07 12:19:58

标签: java android proguard

我看到下一行有一个奇怪的崩溃:

java.lang.NoSuchMethodError: org.apache.commons.lang3.builder.EqualsBuilder.a

是的,我使用proguard进行混淆,但我没有看到与我一起使用的其他设备上的同样崩溃。我也解压了apk,看看这个方法有这个方法。

我有假设:

  1. 有人正在玩apk
  2. 设备奇怪 - 尤其是ClassLoader
  3. 不幸的是我无法验证我的假设,因为我没有物理访问此设备。

    也许您遇到过这样的错误,或者您有其他信息可以解决问题?

2 个答案:

答案 0 :(得分:2)

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

我遇到过这个问题,并告诉ProGuard不要混淆Apache Commons lib。

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

答案 1 :(得分:2)

我已经尝试了-keep class解决方案并且它有效,但它确实在大约3K方法中获得了更高的APK方法。

更好的解决方案是

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

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