Android RuntimeException: MotionEvent переработано дважды. Проблема с пряниками?

1

Я получаю редкую, но последовательную ошибку, о которой сообщают несколько пользователей моего приложения для Android. Пользовательская обратная связь соответствует этой веб-странице, которая сообщает об ошибке, когда пользователь Android Gingerbread 2.3.1 касается экрана в программе Tricorder:

http://code.google.com/p/moonblink/issues/detail?id=138

Я вызываю event.recycle() в методе onTouchEvent, но после этого я не возвращаю false. Поэтому этот ответ не применяется:

Почему onTouch() генерирует FATAL EXCEPTION при возврате false?

Является ли это ошибкой в ​​Gingerbread? Я никогда не слышал об этом в моих приложениях в версиях 2.1 или 2.2.

Вся трассировка стека, о которой сообщает Консоль разработчика Google:

java.lang.RuntimeException: MotionEvent{40521420 action=0 x=368.0 y=373.04865 pressure=0.3921569 size=0.0} recycled twice!
at android.view.MotionEvent.recycle(MotionEvent.java:659)
at android.view.ViewRoot.handleMessage(ViewRoot.java:1880)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:3683)
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:839)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
at dalvik.system.NativeStart.main(Native Method)
Теги:

1 ответ

3

Возможно, вы можете удалить event.recycle() из вашего метода onTouchEvent(), потому что кажется, что система уже сделала это для вас. У меня такое же исключение, и после удаления event.recycle() все в порядке.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню