Ответ 1
Похоже на ошибку в устройствах Samsung. Смотри сюда: http://developer.samsung.com/forum/thread/android-app-crash-because-of-null-pointer-exception-on-setting-onclick-listener-in-editor-class/201/309993?boardName=SDK&startId=zzzzz~
Я вижу, что необычный крах случается регулярно в моем приложении, но только на устройствах Samsung Galaxy под управлением Android 7. Так как мой код приложения не работает в stacktrace, мне очень сложно отследить выходить и покупать одно из этих дорогостоящих устройств. Есть ли какие-нибудь подсказки, чтобы следовать здесь?
Кажется, что внутренняя ошибка происходит внутри всплывающего окна предложений, связанного с элементом управления вводами, предположительно EditText
, который отображается на основном экране моего приложения. Этот EditText
не должен представлять предложения, так как я также использую
searchBox.setImeOptions(EditorInfo.IME_ACTION_SEARCH | EditorInfo.IME_FLAG_NO_EXTRACT_UI);
searchBox.setInputType(EditorInfo.TYPE_CLASS_TEXT | EditorInfo.TYPE_TEXT_FLAG_NO_SUGGESTIONS);
Последовательность stacktrace:
java.lang.NullPointerException:
at android.widget.Editor$SuggestionsPopupWindow.initContentView(Editor.java:3729)
at android.widget.Editor$PinnedPopupWindow.<init>(Editor.java:3390)
at android.widget.Editor$SuggestionsPopupWindow.<init>(Editor.java:3675)
at android.widget.Editor.replace(Editor.java:431)
at android.widget.Editor$3.run(Editor.java:2354)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6776)
at java.lang.reflect.Method.invoke(Native Method:0)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1520)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1410)
Похоже на ошибку в устройствах Samsung. Смотри сюда: http://developer.samsung.com/forum/thread/android-app-crash-because-of-null-pointer-exception-on-setting-onclick-listener-in-editor-class/201/309993?boardName=SDK&startId=zzzzz~
Возможно, ошибка в системе Android Samsung. Для такого рода ошибок платформы, я считаю, я хотел бы использовать try {} catch {} для их обработки, тогда приложение должно быть в состоянии поддерживать хотя бы. Конечно, если исключение происходит во время загрузки вашей программы, тогда невозможно обработать его с помощью try {} catch..., лучше найти основную причину и найти истинное решение для ее исправления или работы. Но если исключение происходит в вашей функции приложения, легко найти способ справиться с этим после того, как вы поймаете это исключение, тогда ваше приложение не будет аварийно завершено. Мне нравится использовать "try... catch", чтобы справиться с такими неожиданными ситуациями.
Если ваше представление расширяет Активность, попробуйте расширить AppCompatActivty, надейтесь, что он разрешит вашу проблему.