Android 代码混淆导致的NoSuchMethodError异常

用 Android Studio 开发了一个 app ,引入 jar 包,添加依赖,然后调用。一切都正常。
运行后报 NoSuchMethodError 异常,

Throwing new exception 'no non-static method "Lcom/xxx/getInfo;.setPol(I)V"' with unexpected pending exception: java.lang.NoSuchMethodError: no non-static method "Lcom/xxx/getInfo;.getPol()I"

一开始以为是 jar 包版本不对,更换 jar 包后还是一样的错。

最后排查出是 代码混淆 导致的, jar 包的类不混淆即可。

修改 proguard-rules.pro ,

-keep class com.xxx.** { *; }
-keep class com.xxx.yyy.** {*;}
-keep interface com.xxx.** {*;}
-keep interface com.xxx.yyy.** {*;}

版权声明:本文为weixin_44021334原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。