最近、私のアプリで問題が発生し始めました。WebView でページをスクロールしているときに強制的に閉じます。以下は、彼らが私に送ったスタック トレースです。システム提供の WebView コードで null ポインタ例外が発生していることに注意してください。誰が何が間違っているのか考えていますか? 必要に応じて、WebView コードのエラーに関連する可能性のあるアプリの部分のコードを添付します。
java.lang.NullPointerException at
android.webkit.WebView.onTouchEvent(WebView.java:5351) at
android.view.View.dispatchTouchEvent(View.java:3952) at
android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:995) at
android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1034) at
android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1034) at
android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1034) at
android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1034) at
android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1034) at
com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1711) at
com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1145)
at android.app.Activity.dispatchTouchEvent(Activity.java:2096) at
com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1695)
at android.view.ViewRoot.deliverPointerEvent(ViewRoot.java:2217) at
android.view.ViewRoot.handleMessage(ViewRoot.java:1901) at
android.os.Handler.dispatchMessage(Handler.java:99) at
android.os.Looper.loop(Looper.java:130) at
android.app.ActivityThread.main(ActivityThread.java:3701) at
java.lang.reflect.Method.invokeNative(Native Method) at
java.lang.reflect.Method.invoke(Method.java:507) at
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:624) at
dalvik.system.NativeStart.main(Native Method)
ヒントをありがとう。
編集:
ページの読み込み時にタッチ リスナーを無効にし、ページの終了時に有効にします。
webView = new WebView(this);
webView.addJavascriptInterface(this, "DragonLords");
webView.setWebViewClient(webViewClient);
webView.getSettings().setJavaScriptEnabled(true);
webView.setScrollBarStyle(1);
webView.loadData("<body style='background-color: black'> </body>", "text/html", "UTF-8");
webView.setOnTouchListener(this.disablingTouchListener);
private final OnTouchListener disablingTouchListener = new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
return webviewDisabled;
}
};