今天有一个bug,就是webview跟js交互的方法怎么也调不起来,debug包没问题,release包就出错,想想是打包时混淆的问题,打了一个不混淆的包,果不其然,就是混淆的问题。
然后就找解决方案,在proguard-project文件中有这么一句
- <span style="font-family:KaiTi_GB2312;font-size:14px;"># If your project uses WebView with JS, uncomment the following
- # and specify the fully qualified class name to the JavaScript interface
- # class:
- #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
- # public *;
- #}</span>
-keepattributes *Annotation*
-keepattributes *JavascriptInterface*
所以当使用了webview和js交互时,混淆文件中应该添上这些配置:
- -keepclassmembers class cn.xx.xx.Activity$AppAndroid {
- public *;
- }
- -keepattributes *Annotation*
- -keepattributes *JavascriptInterface*