小编Den*_*nis的帖子

Android Proguard Javascript界面​​失败

我在我的项目中使用了这里描述的一段代码

http://lexandera.com/2009/01/extracting-html-from-a-webview/

我创建.apk文件,将其安装在我的设备上,它正常工作.如果我尝试使用proguard的混淆项目失败,则不会到达MyJavaScriptInterface的方法showHTML(String html).

关于那个我的proguard配置

-keep public class com.mypackage.MyClass.MyJavaScriptInterface
-keep public class * implements com.mypackage.MyClass.MyJavaScriptInterface
-keepclassmembers class * implements com.mypackage.MyClass.MyJavaScriptInterface { 
    <methods>; 
}
Run Code Online (Sandbox Code Playgroud)

根据这个答案Android proguard Javascript Interface问题.

解决了.

正如Eric建议的那样,我改变了这样的Proguard配置文件:

-keep public class com.mypackage.MyClass$MyJavaScriptInterface
-keep public class * implements com.mypackage.MyClass$MyJavaScriptInterface
-keepclassmembers class com.mypackage.MyClass$MyJavaScriptInterface { 
    <methods>; 
}
Run Code Online (Sandbox Code Playgroud)

现在我的项目完美无缺.

对于API 17+,您还需要保留@JavascriptInterface注释:

-keepattributes JavascriptInterface
Run Code Online (Sandbox Code Playgroud)

http://developer.android.com/reference/android/webkit/JavascriptInterface.html

java obfuscation android proguard

38
推荐指数
1
解决办法
1万
查看次数

标签 统计

android ×1

java ×1

obfuscation ×1

proguard ×1