我在https://github.com/evgenyneu/js-evaluator-for-android中使用WebView在WebView中执行javascript,并使用@JavascriptInterface注释方法将结果返回给java。
我在使用dexguard进行模糊处理的库项目中执行此操作。
这在android 7,6和5上工作正常。我也在Android应用程序中使用该库,它的工作原理除了使用Proguard时,它在Android 5上停止工作,但仍可在android 6上运行。
我定位SDK 24,最小值为8但代码仅在21及以上时使用。 @JavascriptInterface注释和所有类都免于混淆,但是,这在Android 5和6上不起作用。它在7上工作。
知道我做错了吗?
经过更多测试后,我可以得出结论,当我发布buildtype buildgable时,它开始处理发布:
release {
minifyEnabled true
debuggable true
}
答案 0 :(得分:0)
问题是我在服务中执行此操作,并且一些webview实现检查您是否在主循环器上运行。
我的一个解决方案是在主要的循环器上执行它:
this.handler = new Handler(Looper.getMainLooper());
this.handler.postDelayed(new Runnable()
{
@Override
public void run()
{
// create a webview
final WebView webView = new WebView(context);
// etc
}
});