android - Carousel 中的 ArrayIndexOutOfBoundsException - MessageQueue 回调和 handleReceiveCallback 中的异常

标签 android carousel

我在我的应用中使用轮播。

对于拥有 Android 4.2.2 且仅处于横向模式的用户,他们报告了此问题:

12-19 15:01:56.685: E/InputEventReceiver(7009): Exception dispatching input event.
12-19 15:01:56.685: E/MessageQueue-JNI(7009): Exception in MessageQueue callback: handleReceiveCallback
12-19 15:01:56.695: E/MessageQueue-JNI(7009): java.lang.ArrayIndexOutOfBoundsException: length=12; index=-1
12-19 15:01:56.695: E/MessageQueue-JNI(7009):   at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2076)
12-19 15:01:56.695: E/MessageQueue-JNI(7009):   at com.digitalaria.gama.carousel.CarouselBehavior.dispatchTouchEvent(CarouselBehavior.java:1768)
12-19 15:01:56.695: E/MessageQueue-JNI(7009):   at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2401)
12-19 15:01:56.695: E/MessageQueue-JNI(7009):   at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2091)
12-19 15:01:56.695: E/MessageQueue-JNI(7009):   at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2401)
12-19 15:01:56.695: E/MessageQueue-JNI(7009):   at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2091)
12-19 15:01:56.695: E/MessageQueue-JNI(7009):   at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2401)
12-19 15:01:56.695: E/MessageQueue-JNI(7009):   at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2091)
12-19 15:01:56.695: E/MessageQueue-JNI(7009):   at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2401)
12-19 15:01:56.695: E/MessageQueue-JNI(7009):   at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2091)
12-19 15:01:56.695: E/MessageQueue-JNI(7009):   at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2401)
12-19 15:01:56.695: E/MessageQueue-JNI(7009):   at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2091)
12-19 15:01:56.695: E/MessageQueue-JNI(7009):   at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2401)
12-19 15:01:56.695: E/MessageQueue-JNI(7009):   at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2091)
12-19 15:01:56.695: E/MessageQueue-JNI(7009):   at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:2284)
12-19 15:01:56.695: E/MessageQueue-JNI(7009):   at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1578)
12-19 15:01:56.695: E/MessageQueue-JNI(7009):   at android.app.Activity.dispatchTouchEvent(Activity.java:2468)
12-19 15:01:56.695: E/MessageQueue-JNI(7009):   at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:2232)
12-19 15:01:56.695: E/MessageQueue-JNI(7009):   at android.view.View.dispatchPointerEvent(View.java:7876)
12-19 15:01:56.695: E/MessageQueue-JNI(7009):   at android.view.ViewRootImpl.deliverPointerEvent(ViewRootImpl.java:3894)
12-19 15:01:56.695: E/MessageQueue-JNI(7009):   at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:3778)
12-19 15:01:56.695: E/MessageQueue-JNI(7009):   at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:5030)
12-19 15:01:56.695: E/MessageQueue-JNI(7009):   at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:5009)
12-19 15:01:56.695: E/MessageQueue-JNI(7009):   at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:5107)
12-19 15:01:56.695: E/MessageQueue-JNI(7009):   at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:185)
12-19 15:01:56.695: E/MessageQueue-JNI(7009):   at android.os.MessageQueue.nativePollOnce(Native Method)
12-19 15:01:56.695: E/MessageQueue-JNI(7009):   at android.os.MessageQueue.next(MessageQueue.java:125)
12-19 15:01:56.695: E/MessageQueue-JNI(7009):   at android.os.Looper.loop(Looper.java:124)
12-19 15:01:56.695: E/MessageQueue-JNI(7009):   at android.app.ActivityThread.main(ActivityThread.java:5283)
12-19 15:01:56.695: E/MessageQueue-JNI(7009):   at java.lang.reflect.Method.invokeNative(Native Method)
12-19 15:01:56.695: E/MessageQueue-JNI(7009):   at java.lang.reflect.Method.invoke(Method.java:511)
12-19 15:01:56.695: E/MessageQueue-JNI(7009):   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102)
12-19 15:01:56.695: E/MessageQueue-JNI(7009):   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869)
12-19 15:01:56.695: E/MessageQueue-JNI(7009):   at dalvik.system.NativeStart.main(Native Method)

我找不到这里的问题。

最佳答案

看起来您正在将 Views 存储在一个数组中。

当设备旋转时,这个数组会被重置,所有的 View 都会被移除。当数组适配器试图获取其位置时,由于数组为空,它返回 -1

尝试处理旋转事件并确保重新填充数组。

如果没有看到一些代码,我无法肯定地回答,但它确实看起来数组/ View 列表正在被清空或设置为 null。

关于android - Carousel 中的 ArrayIndexOutOfBoundsException - MessageQueue 回调和 handleReceiveCallback 中的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20677869/

相关文章:

java - 如何强制最近通话 Activity 在插入时显示联系人姓名

android - 即使在 android 中将铃声设为静音也会响铃

android - 仅在 Kitkat 上运行我的应用程序

javascript - 同一页面上的 JQuery Carousel 多个实例

javascript - 如何扩展图像高度以适合我的整个屏幕?

Html Bootstrap - 包装引导轮播以适合呈现的图像

android - 我如何获取有关 SQLite 中外键的信息?

布局复杂的Android ui

jquery - 每个使用jquery的多个轮播(carouFredSel),链接标识符问题

css - Bootstrap 4 |旋转木马文本和图像分开