Исключение Null указателя в всплывающем окне подсказок на Samsung Galaxy Android 7

Я вижу, что необычный крах случается регулярно в моем приложении, но только на устройствах 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)

Ответ 2

Возможно, ошибка в системе Android Samsung. Для такого рода ошибок платформы, я считаю, я хотел бы использовать try {} catch {} для их обработки, тогда приложение должно быть в состоянии поддерживать хотя бы. Конечно, если исключение происходит во время загрузки вашей программы, тогда невозможно обработать его с помощью try {} catch..., лучше найти основную причину и найти истинное решение для ее исправления или работы. Но если исключение происходит в вашей функции приложения, легко найти способ справиться с этим после того, как вы поймаете это исключение, тогда ваше приложение не будет аварийно завершено. Мне нравится использовать "try... catch", чтобы справиться с такими неожиданными ситуациями.

Ответ 3

Если ваше представление расширяет Активность, попробуйте расширить AppCompatActivty, надейтесь, что он разрешит вашу проблему.