10

में एंड्रॉयड एन दुर्घटनाओं एंड्रॉयड एन करने के लिए अपने Nexus 5X अपग्रेड करने के बाद, मैं निम्न क्रैश जब EditText का उपयोग कर: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

संपादित करें: अगर मैं अलावा android:colorAccent जोड़ने यह ठीक काम करता है के लिए सिर्फ 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> 

लेकिन थीम की आवश्यकता के रूप में इसकी आवश्यकता नहीं होनी चाहिए। AppCompat। स्टैक ट्रेस में

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

+0

यदि आप कोई नमूना ऐप बना सकते हैं जो समस्या को पुन: उत्पन्न करता है, [एक समस्या फ़ाइल करें] (http://b.android.com)। – CommonsWare

+1

@ कॉमन्सवेयर मैं अंत में पुन: पेश कर सकता हूं। ऐसा लगता है कि AppCompatEditText के बाद वेबव्यू बनाने के लिए लिंक किया गया है। वहां दर्ज किया गया मुद्दा: https://code.google.com/p/android/issues/detail?id=221504। – mbonnin

+0

क्या आपने इसे हल करने का प्रबंधन किया था? यह अभी भी 25.3.1 – LucioB

उत्तर

8

कि मुझे EditText के लिए सुझावों को अक्षम करने के बारे में सोच कर दिया SuggestionsPopupWindow के लिए एक संदर्भ था:

मुझे लगता है कि समस्या को प्रदर्शित करता है एक छोटा सा एप्लिकेशन बनाया है।

मैं एक समाधान के रूप में निम्नलिखित कोड का इस्तेमाल किया:

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); 
     } 
    } 

हम भी एक्सएमएल में inputType सेट कर सकते हैं, लेकिन इसके बाद के संस्करण कोड हमें इनपुट प्रकार विद्यमान को TYPE_TEXT_FLAG_NO_SUGGESTIONS जोड़ने के लिए अनुमति देता है। इस तरह textAppearance = "@ रंग /" :

+0

पर होता है, हाँ, मैंने उस समय के लिए किया था। हालांकि मैं वास्तव में यह एक उचित फिक्स पर विचार नहीं करता हूं। – mbonnin

+0

कामकाज, लेकिन काम किया। –

+0

मैं इसे एंड्रॉइड एम, एन, और ओ में देख रहा हूं। यह ओएस संस्करण विशिष्ट नहीं प्रतीत होता है। – Mark

1

अपने संपादित पाठ को देखने के लिए इस जोड़े एंड्रॉयड

<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