在onTouchEvent中的CoordinatorLayout NullPointerException

我正在获取CoordinatorLayout onTouchEventNullPointerException

我正在使用DrawerLayout与Android支持AppCompat v23.0.0库的CollapsingToolbarLayout

我的观察是在滚动CollapsingToolbarLayout或点击抽屉项目时随机发生崩溃。

有没有人遇到这个问题? 任何工作,以避免这种exception?

logcat的:

 08-22 15:16:34.657: E/AndroidRuntime(27596): java.lang.NullPointerException: Attempt to invoke virtual method 'float android.view.MotionEvent.getX()' on a null object reference 08-22 15:16:34.657: E/AndroidRuntime(27596): at android.view.View.onTouchEvent(View.java:9321) 08-22 15:16:34.657: E/AndroidRuntime(27596): at android.support.design.widget.CoordinatorLayout.onTouchEvent(CoordinatorLayout.java:449) 08-22 15:16:34.657: E/AndroidRuntime(27596): at android.view.View.dispatchTouchEvent(View.java:8388) 08-22 15:16:34.657: E/AndroidRuntime(27596): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2398) 08-22 15:16:34.657: E/AndroidRuntime(27596): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2158) 08-22 15:16:34.657: E/AndroidRuntime(27596): at android.support.v4.widget.DrawerLayout.cancelChildViewTouch(DrawerLayout.java:1491) 08-22 15:16:34.657: E/AndroidRuntime(27596): at android.support.v4.widget.DrawerLayout$ViewDragCallback.peekDrawer(DrawerLayout.java:1739) 08-22 15:16:34.657: E/AndroidRuntime(27596): at android.support.v4.widget.DrawerLayout$ViewDragCallback.access$000(DrawerLayout.java:1624) 08-22 15:16:34.657: E/AndroidRuntime(27596): at android.support.v4.widget.DrawerLayout$ViewDragCallback$1.run(DrawerLayout.java:1630) 08-22 15:16:34.657: E/AndroidRuntime(27596): at android.os.Handler.handleCallback(Handler.java:739) 08-22 15:16:34.657: E/AndroidRuntime(27596): at android.os.Handler.dispatchMessage(Handler.java:95) 08-22 15:16:34.657: E/AndroidRuntime(27596): at android.os.Looper.loop(Looper.java:135) 08-22 15:16:34.657: E/AndroidRuntime(27596): at android.app.ActivityThread.main(ActivityThread.java:5221) 08-22 15:16:34.657: E/AndroidRuntime(27596): at java.lang.reflect.Method.invoke(Native Method) 08-22 15:16:34.657: E/AndroidRuntime(27596): at java.lang.reflect.Method.invoke(Method.java:372) 08-22 15:16:34.657: E/AndroidRuntime(27596): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:898) 08-22 15:16:34.657: E/AndroidRuntime(27596): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:693) 08-22 15:16:35.965: I/Process(27596): Sending signal. PID: 27596 SIG: 9 

Solutions Collecting From Web of "在onTouchEvent中的CoordinatorLayout NullPointerException"

根据Kevin Salazar提出的链接,如果您将支持库更新到版本23.0.1,该错误将得到解决

这对我有用。 https://code.google.com/p/android/issues/detail?id=183166

 @Override public boolean dispatchTouchEvent(MotionEvent ev) { try { return super.dispatchTouchEvent(ev); } catch (Exception e) { return false; } } 

正如David Chu正确解释的那样,这个问题在版本23.0.1及更高版本中得到了解决。 另外,就我而言,凯文·萨拉萨尔(Kevin Salazar)关于尝试捕获dispatchTouchEvent的build议似乎降低了(可能是感知偏差)崩溃的数量,但并不完全避免它们。

一个关键的方面是,崩溃不像起初出现的那样随机。 在我这种情况下,当你慢慢滑动抽屉时,就会发生这种情况。 快速打开和closures抽屉不会导致崩溃。 这有助于我重现错误。