项目中用到了webview,在签名打包后,js事件失效,百思不得其解,通过一通google找到解决办法
http://blog.chinaunix.net/uid-15059847-id-3418228.html?1357717662
在android自带的proguard.txt里有这句话
# 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 *;
#}
如果你的项目使用了WebView与JS,取消以下的屏蔽,并为你的Js接口指定类名
-keep public class <Package Name>.ActivityName$JSClassname {
public *;
}
配置,发现有些4.2以上的系统照样无法调用js,解决办法
http://my.eoe.cn/blue_rain/archive/3698.html
因为android 4.2以上版本调用js接口需要在方法使用声明@JavascriptInterface,然后混淆时可能会弄丢该声明导致,程序无法调用js
在配置文件上继续加上:
-keep attributes Annotation
-keep attributes JavascriptInterface