TextInputLayout でラップされた TextInputEditText があります。ただし、一部のキーボードでは、ユーザーがスペルの候補を表示し、その単語をタップして候補のポップアップ リストを表示すると、アプリが激しくクラッシュし、キーボードが画面に表示されたままになり、ダイアログの上に表示されることがあります。
これは Android 6、7、および 8 で発生します。6.0.1 を実行している Samsung Galaxy S5 と標準の Samsung キーボードで問題を再現できますが、同じデバイスの Gboard または Swype では再現できず、Android 8.0 を実行している Nexus 5x では再現できません。デフォルトの Google キーボード。
アプリケーションは 26 を対象としており、デザイン サポート ライブラリ バージョン 26.1.0 を使用しています。この同じスタック トレースがサポート ライブラリの複数のバージョンで表示され、これまたは同様の問題が以前に修正されたと主張されています。
原因を突き止めて再現するのはかなり困難でした。私は特別なテーマや色を設定していません - appcompat だけです。スタック トレースは次のとおりです。
java.lang.UnsupportedOperationException: Failed to resolve attribute at index 6: TypedValue{t=0x2/d=0x101009b a=1}
at android.content.res.TypedArray.getColorStateList(TypedArray.java:484)
at android.text.style.TextAppearanceSpan.<init>(TextAppearanceSpan.java:65)
at android.text.style.TextAppearanceSpan.<init>(TextAppearanceSpan.java:45)
at android.widget.Editor$SuggestionsPopupWindow$SuggestionInfo.<init>(Editor.java:3012)
at android.widget.Editor$SuggestionsPopupWindow$SuggestionInfo.<init>(Editor.java:3007)
at android.widget.Editor$SuggestionsPopupWindow.initContentView(Editor.java:2995)
at android.widget.Editor$PinnedPopupWindow.<init>(Editor.java:2844)
at android.widget.Editor$SuggestionsPopupWindow.<init>(Editor.java:2969)
at android.widget.Editor.showSuggestions(Editor.java:2229)
at android.widget.Editor$2.run(Editor.java:2109)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:158)
at android.app.ActivityThread.main(ActivityThread.java:7224)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
私が見つけることができた同様の/関連する問題は次のとおりです。
- TextAppearanceSpan で Android N がクラッシュする
- 致命的な例外: java.lang.UnsupportedOperationException: インデックス 6 で属性を解決できませんでした: TypedValue{t=0x2/d=0x101009b a=1}
- https://meta.stackexchange.com/questions/292199/android-app-crashes-when-tapping-on-red-underlined-by-the-spell-checker-text-w
残念ながら、唯一の回避策は、TextInputEditText フィールドですべてのユーザーのスペル候補を無効にすることのようですが、これは非常に不十分です。私は他のアイデア/提案を受け入れます。