用 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.** {*;}