10

でクラッシュのEditTextを使用しているとき、私は次のクラッシュを持っている:AndroidのNは、Android Nに私のネクサス5XをアップグレードするのでTextAppearanceSpan

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:528) 
     at android.text.style.TextAppearanceSpan.<init>(TextAppearanceSpan.java:65) 
     at android.text.style.TextAppearanceSpan.<init>(TextAppearanceSpan.java:45) 
     at android.widget.Editor$SuggestionsPopupWindow.setUp(Editor.java:3316) 
     at android.widget.Editor$PinnedPopupWindow.<init>(Editor.java:3016) 
     at android.widget.Editor$SuggestionsPopupWindow.<init>(Editor.java:3309) 
     at android.widget.Editor.replace(Editor.java:356) 
     at android.widget.Editor$3.run(Editor.java:2129) 
     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:6077) 
     at java.lang.reflect.Method.invoke(Native Method) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755) 

、すでにいくつかのテキストを持っているのEditTextをクリックしたときにそれが起こります。私はそれが自動的に正しいポップアップか何か類似していると仮定しています。

マイアプリはサポートLIBS 24.2.0とTheme.AppCompat.Light.NoActionBar

編集使用しています:私はちょうどcolorAccent私のテーマで他にandroid:colorAccentを追加する場合、それは正常に動作します:

<style name="MyTheme" parent="Theme.AppCompat.Light.NoActionBar"> 
    <item name="colorPrimary">@color/mainBrandColor</item> 
    <item name="colorPrimaryDark">@color/mainBrandDarkerColor</item> 
    <item name="colorAccent">@color/mainBrandColor</item> 
    <item name="android:colorAccent">@color/mainBrandColor</item> 
</style> 

をしかし、私はTheme.AppCompatから継承しているので、これは必要ありません。私はのEditTextのための提案を無効にすることを考え作られたSuggestionsPopupWindowへの参照があったスタックトレースでは

https://github.com/martinbonnin/TextAppearanceSpanCrash/blob/master/app/src/main/java/mbonnin/com/textappearancescancrash/MainActivity.java

+0

問題を再現するサンプルアプリケーションを作成することができれば、[問題を報告する](http://b.android.com)。 – CommonsWare

+1

@CommonsWare私は最終的に再現できました。これは、AppCompatEditTextの後にWebViewを作成することに関連しているようです。そこに掲載された問題:https://code.google.com/p/android/issues/detail?id=221504 – mbonnin

+0

あなたはそれを解決できましたか?それはまだ25.3.1で発生します。 – LucioB

答えて

8

は、私は問題を展示小さなアプリを作りました。私は回避策として、次のコードを使用

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { 
     if ((editText.getInputType() & InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS) != InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS) { 
      editText.setInputType(editText.getInputType() | InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS); 
     } 
    } 

を我々はまた、XMLでinputTypeを設定することができますが、上記のコードは、私たちは入力タイプを存在するTYPE_TEXT_FLAG_NO_SUGGESTIONSを追加することができます。

+0

はい、私は当分それをしました。私は本当にこれは適切な修正とは思わない。 – mbonnin

+0

回避策が働いています。 –

+0

Android M、N、およびOでこれが表示されています。OSのバージョンに固有のようではありません。 – Mark

1

あなたの編集テキストビュー アンドロイドにこれを追加します。textAppearanceは= "@色/" このような :

<EditText 
     android:textAppearance="@color/abc_primary_text_disable_only_material_dark" 
     ... 
/> 

"@カラー/ abc_primary_text_disable_only_material_dark"(内蔵):

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_enabled="false" android:color="@color/bright_foreground_disabled_material_dark"/> 
    <item android:color="@color/bright_foreground_material_dark"/> 
</selector> 

それは私のために働く

2

サポートライブラリを25.0.0以上にアップデートすると、この問題は解決されます

+0

私は26.1.0を使用していますが、この問題は解決されていません。 – Mark

関連する問題