質問: 個人の趣味としてAndroidアプリの開発をしています。 ブラウザアプリを配信しているのですが、「ANRとクラッシュ」で報告される下記のエラーについて、どのように対応すべきか理解ができません。 このようなAndroid側のクラスで発生しているエラーについてどのように対応をすすめるべきか、ヒントだけでもよいので助言をいただけると大変助かります。 ちなみに自身で毎日使用してもエラーが特に発生していないので、イレギュラーなケースで発生するものと思われます。 OSはAndroid5〜7まで報告があり、特に特定のOSや端末に集中しているわけではないようです。 ``` java.lang.NullPointerException: at android.view.ViewRootImpl$SendWindowContentChangedAccessibilityEvent.run (ViewRootImpl.java:7154) at android.os.Handler.handleCallback (Handler.java:739) at android.os.Handler.dispatchMessage (Handler.java:95) at android.os.Looper.loop (Looper.java:148) at android.app.ActivityThread.main (ActivityThread.java:5417) at java.lang.reflect.Method.invoke (Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:726) at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:616) ```
回答: Frameworkの不具合だと思います。 ↓がFixコミットです(8.0以降に入っています)。 TYPE_WINDOW_CONTENT_CHANGEDというAccessibilityEventを発行する処理が、マルチスレッドでコールされた場合に該当のエラーが発生するケースがありそうです。 TYPE_WINDOW_CONTENT_CHANGEDはViewの追加や削除、サイズ変更等があった際に発生するイベントです。