小米 HM 1SW java.lang.NoSuchMethodError
Xiaomi HM 1SW java.lang.NoSuchMethodError
我看到下一行出现奇怪的崩溃:
java.lang.NoSuchMethodError: org.apache.commons.lang3.builder.EqualsBuilder.a
是的,我使用 proguard 进行混淆,但我在其他设备上没有看到同样的崩溃。我也解压了 apk 并看到使用此方法的 class 存在。
我有假设:
- 有人在玩apk
- 设备有些奇怪 - 特别是 ClassLoader
不幸的是,我无法验证我的假设,因为我无法物理访问此设备。
也许您遇到过此类错误,或者您有其他信息可以解决问题?
索赔:我不知道问题的根源。
我遇到过这个问题并通过告诉 ProGuard 不要混淆 Apache Commons lib 来解决它。
-keep class org.apache.commons.lang3.** { *; }
我已经尝试了 -keep class
解决方案并且它有效,但它确实使 APK 方法计数增加了大约 3000 个方法。
更好的解决方案是
-keepnames class org.apache.commons.lang3.** { *; }
因为它会保留您使用的 classes/methods 个名称,避免崩溃,但允许删除未使用的名称。
我看到下一行出现奇怪的崩溃:
java.lang.NoSuchMethodError: org.apache.commons.lang3.builder.EqualsBuilder.a
是的,我使用 proguard 进行混淆,但我在其他设备上没有看到同样的崩溃。我也解压了 apk 并看到使用此方法的 class 存在。
我有假设:
- 有人在玩apk
- 设备有些奇怪 - 特别是 ClassLoader
不幸的是,我无法验证我的假设,因为我无法物理访问此设备。
也许您遇到过此类错误,或者您有其他信息可以解决问题?
索赔:我不知道问题的根源。
我遇到过这个问题并通过告诉 ProGuard 不要混淆 Apache Commons lib 来解决它。
-keep class org.apache.commons.lang3.** { *; }
我已经尝试了 -keep class
解决方案并且它有效,但它确实使 APK 方法计数增加了大约 3000 个方法。
更好的解决方案是
-keepnames class org.apache.commons.lang3.** { *; }
因为它会保留您使用的 classes/methods 个名称,避免崩溃,但允许删除未使用的名称。