2016-06-28 11 views
4

Android 6.0.1デバイスからのクラッシュログにはこのエラーが表示されますが、デバイス固有ではありません。

Fatal Exception: android.view.WindowManager$BadTokenException: Unable to add window -- token null is not valid; is your activity running? 
     at android.view.ViewRootImpl.setView(ViewRootImpl.java:849) 
     at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:337) 
     at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91) 
     at android.widget.PopupWindow.invokePopup(PopupWindow.java:1329) 
     at android.widget.PopupWindow.showAtLocation(PopupWindow.java:1077) 
     at android.widget.PopupWindow.showAtLocation(PopupWindow.java:1035) 
     at com.android.internal.widget.FloatingToolbar$FloatingToolbarPopup.show(FloatingToolbar.java:563) 
     at com.android.internal.widget.FloatingToolbar.show(FloatingToolbar.java:214) 
     at com.android.internal.view.FloatingActionMode$FloatingToolbarVisibilityHelper.updateToolbarVisibility(FloatingActionMode.java:411) 
     at com.android.internal.view.FloatingActionMode$1.run(FloatingActionMode.java:65) 
     at android.os.Handler.handleCallback(Handler.java:739) 
     at android.os.Handler.dispatchMessage(Handler.java:95) 
     at android.os.Looper.loop(Looper.java:158) 
     at android.app.ActivityThread.main(ActivityThread.java:7229) 
     at java.lang.reflect.Method.invoke(Method.java) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120) 

この問題の原因と解決方法を知っている人はいますか?比較的まれにしか発生していないようです。

+1

同じ問題があります。 Samsung 6.0.1デバイスで100%発生します。私は自分のSamsungデバイスで6.0.1でそれを再現することはできません。私を狂わせる解決策は見つかりましたか?また、https://code.google.com/p/android/issues/detail?id=208906 – peshkira

+0

に申し込んでください。いいえ、それをまだ理解していません。 – RyanCheu

答えて

2

Android 6.0.1以上のSamsungデバイスでのみ同じ問題が発生していますか?それを再現できること。

問題は、(フローティングツールバーが表示された)ユーザーは、画面上のテキストを選択したときにそれが起こってnew floating action mode (floating toolbar)

である限り、私は理解されるように、その後、前のアクティビティになり(現在の活動をクローズ)し、アンドロイドOSは、破壊されたアクティビティのオブジェクトを使用して(それが適切に閉じられていないため)再作成しようとしています。

解決策は、新しいActionModeを適切に処理し、アクティビティを閉じる前に閉じることです。

+0

恐ろしい!私はこのバグを再現することができず、私を狂わせてしまった...ありがとう!今、WebViewでアクティビティに表示されているときに、この問題に対処する方法についてもっと教えてください。私はそれをプログラムで作成せず、自動的に表示されます。 – miecio

+4

@miecioあなたのwebviewでstartActionMode(コールバックコールバック、int型)をオーバーライドし、super.startActionMode(...)の結果に弱い参照を保存して、必要に応じてonPauseで終了できるようにします。 – RyanCheu

0

アクティビティonPauseからwebview.onResume()を呼び出すと、アクティビティonResumeからも がこの問題を修正しているようです。

関連する問題