Andorid 混淆後JS的回撥方法不起作用了
阿新 • • 發佈:2019-02-13
今天有一個bug,就是webview跟js互動的方法怎麼也調不起來,debug包問題,release包就出錯,想想是打包時混淆的問題,打了一個不混淆的包,果不其然,就是混淆的問題。
然後就找解決方案,在proguard-project檔案中有這麼一句
?1 2 3 4 5 6 |
<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互動時,混淆檔案中應該添上這些配置:
?1 2 3 4 5 6 |
-keepclassmembers
class cn.xx.xx.Activity$AppAndroid {
public
*;
}
-keepattributes *Annotation*
-keepattributes *JavascriptInterface*
|
跳過所有內部類不混淆
-keepclassmembers class com.xxx.xxx.class$* {
<methods>;
}