Manchmal löst Uncaught Error aus: Fehler beim Aufrufen der Methode auf NPObject unter Android

Ich habe Probleme mit der Webansicht in Android und den Javascript-Schnittstellen.

Ich übergebe einen String an das JavascriptInterface. Beim Debuggen erhalte ich die richtige Zeichenfolge in meiner Android-Anwendung. Das Problem: Manchmal erhalte ich einen nicht erfassten Fehler: Fehler beim Aufrufen der Methode auf NPObject.

Weiß jemand warum?

Die Schnittstelle in Java:

public class JSInterfaceGame extends JSInterface {

@JavascriptInterface
public void setShareText(String share){
    shareText = share;
    if(mJSInterfaceListener != null)
        mJSInterfaceListener.onParametersChanged(SHARE_TEXT);
}

Die Initialisierung in der onCreateView-Methode innerhalb des Fragments:

online = (WebView) rootView.findViewById(R.id.online);
online.setWebViewClient(new WISWebviewClient() {
  @Override
  public void onStatusChanged(final WebView view, int progress, long duration) {
    //unrelated
  }
});

WebSettings ws = online.getSettings();
ws.setJavaScriptEnabled(true);
ws.setUserAgentString(USER_AGENT);
ws.setCacheMode(WebSettings.LOAD_DEFAULT);
ws.setRenderPriority(WebSettings.RenderPriority.HIGH);

SharedPreferences settings = getActivity().getSharedPreferences(GameActivity.PREFERENCES, Context.MODE_PRIVATE);

mJSInterface = new JSInterfaceGame();
mJSInterface.setJSInterfaceListener(this); // Defined elsewhere in this class.
mJSInterface.setPlayerName(settings.getString(GameActivity.PREFS_PlAYERNAME, null));
online.addJavascriptInterface(mJSInterface, "JSInterface");
online.loadUrl("http://myurl.something");

Rufen Sie Javascript auf:

function makeShareText() {
  var text = "Some text";
  console.log(typeof text); // Always a string.
  JSInterface.setShareText(text);
}

Antworten auf die Frage(4)

Ihre Antwort auf die Frage