Recursos de Android que convierten a string Warning TypedValue

Ok, estoy mirando a la derecha pasado algo aquí ..

Cada vez que estoy en mi aplicación y cambio de actividades, logcat reporta una serie de advertencias:

02-04 14:42:36.524: WARN/Resources(1832): Converting to string: TypedValue{t=0x12/d=0x0 a=2 r=0x7f08002b} 02-04 14:42:36.524: WARN/Resources(1832): Converting to string: TypedValue{t=0x12/d=0x0 a=2 r=0x7f08002c} 02-04 14:42:36.524: WARN/Resources(1832): Converting to string: TypedValue{t=0x12/d=0x0 a=2 r=0x7f08002d} 

Otras aplicaciones no muestran estas advertencias. ¿Es una cosa de compresión pre-release / aapt?

Está utilizando un recurso bool donde se espera una cadena.

Puede encontrar qué recurso se está utilizando incorrectamente al abrir el archivo generado de R.java y buscar los ID de recursos del mensaje de logcat:

 0x7f08002b 0x7f08002c 0x7f08002d 

Los tres deben ser de su archivo bool.xml (el "t = 0x12" en el mensaje de advertencia significa que los recursos son TYPE_INT_BOOLEAN ).

A continuación, busque dónde se están utilizando esos ID de recursos en su proyecto (probablemente un xml de diseño, pero podría estar en cualquier parte) y asegúrese de que coincidan los tipos.

Aquí hay un ejemplo de un TextView que generaría ese mensaje de registro. Si en mi res / values ​​/ bool.xml tengo:

 <resources> <bool name="foo_flag">false</bool> </resources> 

Puedo referirme incorrectamente a él de un archivo de la disposición xml:

 <TextView android:id="@+id/foo" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@bool/foo_flag"></TextView> 

Cuando ejecute esa aplicación, obtendré el mensaje de advertencia ya que "text" espera un recurso de cadena, no un bool (mi aplicación aparece como se esperaba, ya que el indicador se convierte en la cadena "false").

Estas advertencias sólo se produjeron cuando se habilitó una opción de desarrollador .

Configuración del dispositivo> Opciones del programador> Deshabilitar 'Habilitar inspección de atributos de vista'

He descubierto que esta advertencia también se emite cuando se especifica una cadena de plurales de un widget que requiere parámetros.

Por ejemplo:

 <plurals name="song_count"> <item quantity="one">%d song in playlist</item> <item quantity="other">%d songs in playlist</item> </plurals> 

La advertencia aparecerá al inflar una actividad que contenga un widget que lo haga referencia:

 <TextView android:id="@+id/tv_total_songs" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@plurals/song_count" /> 

Usted sin duda reemplazar la cadena después de inflar las vistas para establecer los parámetros correctos, por ejemplo:

 playlistSongCount.setText( getResources().getQuantityString( R.plurals.song_count, songCount, songCount)); 

La solución obvia aquí es eliminar el atributo android:text del diseño, ya que no tiene ningún propósito.

Compruebe si no tiene: –

 <TextView android:text="@+id/labelText"/> 

En su archivo de recursos.

Problema en android:text="@+id/fooText

Intente cambiar en su .xml esto:

 <TextView android:id="@+id/foo" android:text="@+id/fooText"/> 

A esto:

 <TextView android:id="@+id/foo" android:text=""/> 
  • ¿Cómo acceder a los recursos del proyecto de la biblioteca de Android?
  • Android: ¿Cómo agregar R.raw al proyecto?
  • No se encontró ningún recurso en el archivo XML de diseño android
  • La biblioteca de Android no lanza sus recursos a otros proyectos
  • Cambio de locale: ¿Forzar la actividad a recargar recursos?
  • Android - getIdentifier devuelve siempre 0 (biblioteca + aplicación)
  • Recursos útiles del sistema Android
  • Androide. Obtener el tamaño de la imagen desde su id de recurso
  • Android ImageButton - determina qué recurso está configurado actualmente
  • Android: ¿Cómo puedo incluir un sonido de notificación utilizando un recurso de sonido?
  • ¿Por qué resource.getStringArray (int) lanzará una excepción?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.