我的Android应用程序的一些用户报告了一个罕见但一致的错误。用户反馈与此网页一致,该网页在Android姜饼2.3.1的用户触摸Tricorder程序中的屏幕时报告错误:
http://code.google.com/p/moonblink/issues/detail?id=138
我在onTouchEvent方法中调用了event.recycle(),但之后没有返回false。所以这个答案并不适用:
Why would onTouch() generate FATAL EXCEPTION when returning false?
这是姜饼中的一个bug吗?在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)发布于 2011-07-09 14:13:31
也许您可以从您的onTouchEvent()方法中删除event.recycle(),因为系统似乎已经为您这样做了。删除event.recycle()后,我得到了相同的异常,一切都正常。
https://stackoverflow.com/questions/6053092
复制相似问题