/ / Fatal Exception: java.lang.ArrayIndexOutOfBoundsException length = 12; indeks = 12 na urządzeniu z Androidem 6.0.1 wersja Androida - Java, Android, Android-viewgroup

Fatal Exception: java.lang.ArrayIndexOutOfBoundsException length = 12; index = 12 na urządzeniu Samsung 6.0.1 wersja Androida - java, android, android-viewgroup

Wyjątek krytyczny: java.lang.ArrayIndexOutOfBoundsException length = 12; indeks = 12 Napotkałem ten błąd tylko na urządzeniu Samsung 6.0.1 (wersja Android). Nie napotkałem tego błędu na żadnym innym urządzeniu z Androidem

stacktrace jest poniżej. Jest raport o awarii na crashlytics, ale nie mogłem odtworzyć błędu.

Fatal Exception: java.lang.ArrayIndexOutOfBoundsException: length=12; index=12 at android.view.ViewGroup.dispatchHoverEvent(ViewGroup.java:1833) at android.view.View.dispatchGenericMotionEvent(View.java:10074) at android.view.ViewGroup.dispatchTransformedGenericPointerEvent(ViewGroup.java:2176) at android.view.ViewGroup.dispatchHoverEvent(ViewGroup.java:1878) at android.view.View.dispatchGenericMotionEvent(View.java:10074) at android.view.ViewGroup.dispatchTransformedGenericPointerEvent(ViewGroup.java:2176) at android.view.ViewGroup.dispatchHoverEvent(ViewGroup.java:1878) at android.view.View.dispatchGenericMotionEvent(View.java:10074) at android.view.ViewGroup.dispatchTransformedGenericPointerEvent(ViewGroup.java:2176) at android.view.ViewGroup.dispatchHoverEvent(ViewGroup.java:1878) at android.widget.ScrollView.dispatchHoverEvent(ScrollView.java:1107) at android.view.View.dispatchGenericMotionEvent(View.java:10074) at android.view.ViewGroup.dispatchTransformedGenericPointerEvent(ViewGroup.java:2176) at android.view.ViewGroup.dispatchHoverEvent(ViewGroup.java:1878) at android.view.View.dispatchGenericMotionEvent(View.java:10074) at android.view.ViewGroup.dispatchTransformedGenericPointerEvent(ViewGroup.java:2176) at android.view.ViewGroup.dispatchHoverEvent(ViewGroup.java:1878) at android.view.View.dispatchGenericMotionEvent(View.java:10074) at android.view.ViewGroup.dispatchTransformedGenericPointerEvent(ViewGroup.java:2176) at android.view.ViewGroup.dispatchHoverEvent(ViewGroup.java:1878) at android.view.View.dispatchGenericMotionEvent(View.java:10074) at android.view.ViewGroup.dispatchTransformedGenericPointerEvent(ViewGroup.java:2176) at android.view.ViewGroup.dispatchHoverEvent(ViewGroup.java:1878) at android.view.View.dispatchGenericMotionEvent(View.java:10074) at android.view.ViewGroup.dispatchTransformedGenericPointerEvent(ViewGroup.java:2176) at android.view.ViewGroup.dispatchHoverEvent(ViewGroup.java:1878) at android.view.View.dispatchGenericMotionEvent(View.java:10074) at android.view.ViewGroup.dispatchTransformedGenericPointerEvent(ViewGroup.java:2176) at android.view.ViewGroup.dispatchHoverEvent(ViewGroup.java:1878) at android.view.View.dispatchGenericMotionEvent(View.java:10074) at com.android.internal.policy.PhoneWindow$DecorView.superDispatchGenericMotionEvent(PhoneWindow.java:2839) at com.android.internal.policy.PhoneWindow.superDispatchGenericMotionEvent(PhoneWindow.java:1873) at android.app.Activity.dispatchGenericMotionEvent(Activity.java:3082) at android.support.v7.view.WindowCallbackWrapper.dispatchGenericMotionEvent(WindowCallbackWrapper.java:70) at com.android.internal.policy.PhoneWindow$DecorView.dispatchGenericMotionEvent(PhoneWindow.java:2806) at android.view.View.dispatchPointerEvent(View.java:10230) at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:5344) at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:5180) at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4620) at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4673) at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4639) at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:4781) at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4647) at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:4838) at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4620) at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4673) at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4639) at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4647) at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4620) at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:7306) at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:7184) at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:7145) at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:7416) at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:185) at android.os.MessageQueue.nativePollOnce(MessageQueue.java) at android.os.MessageQueue.next(MessageQueue.java:323) at android.os.Looper.loop(Looper.java:143) 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)

Odpowiedzi:

1 dla odpowiedzi № 1

W funkcji android.view.ViewGroup.dispatchHoverEvent, jest tablica. Nazwijmy to foo.

foo.length jest 12.

Ale ktoś napisał w linii 1833 foo[n] dla n mając 12 lat

Jest to teraz dozwolone, dla tablicy o długości 12. n musi zawierać się w przedziale od 0 do 11 włącznie. Nawiasem mówiąc, jest to niezwykle często popełniany błąd.

Mam nadzieję, że to się przyda. Jeśli cokolwiek to pokazuje, jak przydatne są ślady stosu.