1. 程式人生 > >Proguard 不要混淆內部類

Proguard 不要混淆內部類

 呼叫webview的js程式碼,跳轉不過去,不混淆程式碼可以執行,混淆後就不行。這肯定是方法被混淆了,那麼如何做呢?

# 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 *;
#}

正確的寫法,寫上類的絕對路徑,類名 ,$ ,再就是內部類名稱。
-keepclassmembers class com.dd.ActionActivity$ExpJavaScriptInterface {
  public *;
}

-keepattributes *Annotation*
-keepattributes *JavascriptInterface*

4.2以上版本呼叫js介面需要在方法使用宣告@JavascriptInterface,然後混淆時可能會弄丟該宣告導致,程式無法呼叫js,需要繼續再配置檔案中新增條件

這樣就Ok了。