7

Otrzymuję NullPointerException w onTouchEvent z CoordinatorLayout.CoordinatorLayout Wyjątek NullPointerException w onTouchEvent

Używam DrawerLayout z CollapsingToolbarLayout biblioteki wsparcia Android AppCompat v23.0.0.

Moja obserwacja to zdarzenie losowe podczas przewijania CollapsingToolbarLayout lub klikanie pozycji z szufladami.

Czy ktoś ma ten problem? jakiekolwiek obejście, aby uniknąć tego wyjątku?

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 

Odpowiedz

9

Według link stwarzanego przez Kevina Salazar, błąd jest ustalona jeśli zaktualizować bibliotekę pomocy do wersji 23.0.1

0

Jak David Chu wyjaśnia poprawnie, problem został rozwiązany w wersji 23.0 .1 i więcej. Również w moim przypadku sugestia Kevina Salazara, by spróbować złapać ekspedycjęTouchEvent, zdawała się obniżać (może być uprzedzeniem percepcyjnym) liczbę wypadków, ale nie całkowicie ich unikać.

Kluczowym aspektem jest to, że awaria nie jest tak przypadkowa, jak się wydaje na początku. W moim przypadku występuje, gdy POWOLI przesuwać się po otwartej szufladzie. Szybkie otwieranie i zamykanie szuflady nie powoduje awarii. Pomogło mi to odtworzyć błąd.

Powiązane problemy