7

Tôi nhận được NullPointerException trong onTouchEvent của CoordinatorLayout.CoordinatorLayout NullPointerException trong onTouchEvent

Tôi đang sử dụng DrawerLayout với CollapsingToolbarLayout thư viện hỗ trợ Android AppCompat v23.0.0.

Quan sát của tôi là sự cố xảy ra ngẫu nhiên trong khi cuộn CollapsingToolbarLayout hoặc nhấp vào các mục ngăn kéo.

Có ai đang gặp vấn đề này không? bất kỳ công việc xung quanh để tránh ngoại lệ này?

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 

Trả lời

9

Theo liên kết được đặt ra bởi Kevin Salazar, các lỗi đã được khắc nếu bạn cập nhật thư viện hỗ trợ của bạn lên phiên bản 23.0.1

0

Như David Chu giải thích một cách chính xác, vấn đề này được giải quyết trong các phiên bản 23,0 .1 trở lên. Ngoài ra, trong trường hợp của tôi, đề xuất của Kevin Salazar về việc thử bắt dispatchTouchEvent dường như thấp hơn (có thể là sự thiên vị nhận thức) số lượng các sự cố nhưng không hoàn toàn tránh được chúng.

Khía cạnh chính là sự cố không phải là ngẫu nhiên như lúc đầu xuất hiện. Trong trường hợp của tôi nó xảy ra khi bạn trượt nhẹ ngăn kéo mở. Mở và đóng ngăn kéo nhanh chóng không gây ra sự cố. Điều này rất hữu ích cho tôi để tái tạo lỗi.

Các vấn đề liên quan