craigk
craigk

Reputation: 1304

getting an error in webview on ice cream sandwich

Error is

java.lang.Throwable: EventHub.removeMessages(int what = 107) is not supported before the WebViewCore is set up.

I am calling a

webview.loadUrl("javascript:myJavaMethod(" + itemArr + "," + telcoID + ");");

on the

webview.setWebViewClient(new WebViewClient() {
            @Override
            public void onPageFinished(WebView view, String url) {

this is a webview playing a flash video player, all is good on 2.2, 2.3.3 etc, tried it on ice cream sandwich and no visible error (other than its just a black screen nor video playing)

Any thoughts.

Upvotes: 11

Views: 6776

Answers (5)

firefistace
firefistace

Reputation: 263

I know this topic is old, but I used it to find my solution to that 107 error. My fix was to replace the deprecated:

webview.getSettings().setPluginsEnabled (true);

to

webview.getSettings().setPluginState(PluginState.ON);

Now it plays the video and error free.

Upvotes: 2

Vijay Sharma
Vijay Sharma

Reputation: 2252

I was getting the same error in my application, however i think my issue is a developer error. In order to explain how i got this issue, ill describe what i did. I'm creating an Android application which is loading and running a GWT compiled JavaScript application into a WebView. I looked around for many different things until i realized that my problem was in my own WebViewClient class. I had my class implemented as follows:

private static class HelloWebViewClient extends WebViewClient
{
    @Override
    public boolean shouldOverrideUrlLoading( WebView view, String url )
    {
        view.loadUrl( url );
        return true;
    }
}

This quickly caused the above exception to manifest. I changed the above line to being the following:

private static class HelloWebViewClient extends WebViewClient
{
    @Override
    public boolean shouldOverrideUrlLoading( WebView view, String url )
    {
        return false;
    }
}

And POOF! no more error. I can't say I can actually explain what I did wrong. But im sure if i dug a bit more, i'd find the problem. But for now, I'm happy that it works. I hope this is useful to someone :)

Upvotes: 0

Jared Sheehan
Jared Sheehan

Reputation: 187

I had the same problem, and I added android:hardwareAccelerated="true" to the actual Activity that the Webview was contained in the Manifest. Hopefully that works for you too. This looks like there is a bug logged: http://code.google.com/p/android/issues/detail?id=21177

Upvotes: 0

yoryo
yoryo

Reputation: 51

I had the same problem until I added the webview to the view dinamically.

Upvotes: 1

Changwei Yao
Changwei Yao

Reputation: 13101

You can call webview.loadUrl("javascript:myJavaMethod(" + itemArr + "," + telcoID + ");"); in a background thread. this can be a solution.

it will warn: A webview method was called on thread xxxx All webview methods must be called on the UI thread.

But it works.

Upvotes: 0

Related Questions