WebView methods on same thread error

In my case nothing was shown in a WebView, so I prefer another way:

runOnUiThread(new Runnable() {
    @Override
    public void run() {
        final WebView webView = (WebView) findViewById(R.id.map);
        webView.loadDataWithBaseURL(...);
    }
});

Java version: You must to use Runnable interface and Post to Handler.

webView.post(new Runnable() {
          @Override
          public void run() {
             webView.loadUrl("file:///android_asset/www/index.html");
          }
       });

Kotlin version:

webView.post(new Runnable {
   webView.loadUrl("file:///android_asset/www/index.html")
})

The JavaScript method is executed on a background (i.e. non-UI) thread. You need to call all Android View related methods on the UI thread. You can achieve what you need with:

mWebView.post(new Runnable() {
    @Override
    public void run() {
        mWebView.loadUrl(...).
    }
});

Which will post the task to run on the UI thread.