NPE на com.android.server.autofill.RemoteFillService $ PendingRequest.cancel()
Crashlytics сообщает об исключении NullPointerException
связанном с автозаполнением, как показано ниже:
Fatal Exception: java.lang.NullPointerException: Attempt to invoke virtual method
'boolean com.android.server.autofill.RemoteFillService$PendingRequest.cancel()' on a null object reference
at android.os.Parcel.readException(Parcel.java:1965)
at android.os.Parcel.readException(Parcel.java:1905)
at android.app.IActivityManager$Stub$Proxy.reportAssistContextExtras(IActivityManager.java:8297)
at android.app.ActivityThread.handleRequestAssistContextExtras(ActivityThread.java:3210)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1913)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6944)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)
Caused by android.os.RemoteException: Remote stack trace:
at com.android.server.autofill.RemoteFillService.cancelCurrentRequest(RemoteFillService.java:177)
at com.android.server.autofill.Session.cancelCurrentRequestLocked(Session.java:465)
at com.android.server.autofill.Session.access$1000(Session.java:118)
at com.android.server.autofill.Session$1.onHandleAssistData(Session.java:322)
at com.android.server.am.ActivityManagerService.reportAssistContextExtras(ActivityManagerService.java:14713)
Тем не менее, стек не содержит ничего из моего приложения, хотя сбой происходит на моей стороне.
Ответы
Ответ 1
Это не проблема с вашим приложением, а с конкретными производителями Android. Кажется, что происходит чаще на устройствах Samsung и не видно на устройствах Pixel. Вот отчет о проблеме для Google, который закрыт как "Не будет исправлен". https://issuetracker.google.com/issues/123311621
Так как сбой происходит из-за автозаполнения. Я бы порекомендовал отключить автозаполнение для конкретного представления, установив importanForAutofill как false/no. https://developer.android.com/reference/android/R.attr.html#importantForAutofill