Error de estilo de texto de Android: el recurso no es un ColorStateList

Tengo un texto muy simple:

<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/app_name" android:textSize="20sp" android:textColor="@style/basic_text_color" android:layout_gravity="center" android:id="@+id/toolbar_title" /> 

Que @ style / basic_text_color es un color que quería reutilizar mucho tiempo en la aplicación, así que hago una app_colors.xml en la carpeta de values :

 <?xml version="1.0" encoding="utf-8"?> <resources> <!-- Text colors style--> <style name="basic_text_color" parent="@android:style/TextAppearance"> <item name="android:textColor">#ff932e</item> </style> <!-- some other color styles--> </resources> 

La aplicación se compila correctamente, pero cada vez que se ejecuta se bloqueará y se mostrará el siguiente error en LogCat:

 FATAL EXCEPTION: main java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.aaa/com.example.aaa.activity.MainActivity}: android.view.InflateException: Binary XML file line #17: Error inflating class TextView at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2100) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2125) at android.app.ActivityThread.access$600(ActivityThread.java:140) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1227) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:4898) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1006) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:773) at dalvik.system.NativeStart.main(Native Method) Caused by: android.view.InflateException: Binary XML file line #17: Error inflating class TextView at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704) at android.view.LayoutInflater.rInflate(LayoutInflater.java:746) at android.view.LayoutInflater.rInflate(LayoutInflater.java:749) at android.view.LayoutInflater.inflate(LayoutInflater.java:489) at android.view.LayoutInflater.inflate(LayoutInflater.java:396) at android.view.LayoutInflater.inflate(LayoutInflater.java:352) at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:249) at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:106) at com.example.aaa.activity.MainActivity.onCreate(MainActivity.java:54) at android.app.Activity.performCreate(Activity.java:5206) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1083) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2064) ... 11 more Caused by: android.content.res.Resources$NotFoundException: Resource is not a ColorStateList (color or path): TypedValue{t=0x1/d=0x7f0b0124 a=-1 r=0x7f0b0124} at android.content.res.Resources.loadColorStateList(Resources.java:2068) at android.content.res.TypedArray.getColorStateList(TypedArray.java:342) at android.widget.TextView.<init>(TextView.java:896) at android.support.v7.widget.AppCompatTextView.<init>(AppCompatTextView.java:44) at android.support.v7.widget.AppCompatTextView.<init>(AppCompatTextView.java:40) at android.support.v7.internal.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:103) at android.support.v7.app.AppCompatDelegateImplV7.createView(AppCompatDelegateImplV7.java:806) at android.support.v7.app.AppCompatDelegateImplV7.onCreateView(AppCompatDelegateImplV7.java:836) at android.support.v4.view.LayoutInflaterCompatHC$FactoryWrapperHC.onCreateView(LayoutInflaterCompatHC.java:44) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:675) ... 22 more 

Así que parece que el error aquí es "Resource no es un ColorStateList (color o ruta): TypedValue {t = 0x1 / d = 0x7f0b0124 a = -1 r = 0x7f0b0124}" …

¿He diseñado el color de la fuente de una manera incorrecta? ¿O cualquier otra cosa va mal? ¡Gracias!

4 Solutions collect form web for “Error de estilo de texto de Android: el recurso no es un ColorStateList”

Colors.xml

 <?xml version="1.0" encoding="utf-8"?> <resources> <color name="basic_text_color">#ff932e</color> </resources> 

diseño

 <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/app_name" android:textSize="20sp" android:textColor="@colors/basic_text_color" android:layout_gravity="center" android:id="@+id/toolbar_title" /> 

Tienes que crear un archivo de recursos de color si quieres cambiar el textColor, como lo fue en la pregunta que estás intentando establecer como color de un estilo.

Usted probablemente quería usar:

 style="@style/basic_text_color" 

Debe utilizar el atributo de color en lugar del estilo uno como.

 <color name="basic_text_color">#YOUR COLOR GOES HERE</color> 

Si desea configurar el color de Java, podría utilizar algo como esto:

 myView.setBackgroundTintList(ColorStateList.valueOf(getResources().getColor(R.color.grey_300))); 
  • El texto largo pasa a la siguiente línea en ICS, pero no en GB y debajo
  • Debe proporcionar un ID de recurso para un error de TextView android
  • Android enlace activo de url en TextView
  • El texto (fuente) parece desvanecido en los apis más antiguos
  • Nuevo carácter de línea \ n no se muestra correctamente en textView Android
  • Android - ¿Espacio entre TextView y Togglebutton?
  • Android sola línea TextView sin los puntos
  • ¿Cómo habilito la copia estándar para un TextView en Android?
  • ¿Hay una manera de hacer ellipsize = "marquee" siempre desplazarse?
  • Italic TextView con wrap_contents parece cortar el texto en el borde derecho
  • ¿Cómo hacer la escritura de texto de animación?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.