此问题出现的原因是:在js调用后的Java回调线程并不是主线程;
解决上述的异常,将webview操作放在主线程中即可:
webView.post(new Runnable() {@Overridepublic void run() {webView.loadUrl(YOUR_URL).} });
引申:
JavaScript和Java的交互是在子线程上面进行的
因为JavaScript和Java交互是在子线程上面进行的,所以如果需要UI方面的修改操作,或者执行其他的操作,必须要考虑到线程安全的问题。