TypedValue Conversión en cadena

Al azar puntos mientras estoy usando mi aplicación de Android, LogCat se inunda con decenas de repeticiones de las siguientes 5 líneas:

10-26 12:53:30.372 21270-21270 W/Resources﹕ Converting to string: TypedValue{t=0x12/d=0x0 a=2 r=0x7f0b00d8} 10-26 12:53:30.372 21270-21270 W/Resources﹕ Converting to string: TypedValue{t=0x1d/d=0xffe51c23 a=2 r=0x7f090047} 10-26 12:53:30.374 21270-21270 W/Resources﹕ Converting to string: TypedValue{t=0x12/d=0x0 a=2 r=0x7f0b008a} 10-26 12:53:30.375 21270-21270 W/Resources﹕ Converting to string: TypedValue{t=0x12/d=0x0 a=2 r=0x7f0b00d6} 10-26 12:53:30.375 21270-21270 W/Resources﹕ Converting to string: TypedValue{t=0x12/d=0x0 a=2 r=0x7f0b00d7} 

Usando la información de la respuesta aceptada a esta pregunta , determiné que está tratando de interpretar nulos (0x0) como booleanos (0x12), lo que no tiene sentido, ya que nunca estoy tratando con nulos o booleanos.

Los identificadores de recursos de los registros (r = 0x?) Apuntan a los atributos de vista / vista dentro de uno de los dos diseños, que incluiremos a continuación.

Los únicos lugares en mi código en los que hago referencia a esos ID de recursos son a) el CursorAdapter que utiliza el primer diseño, yb) una clase que utiliza el segundo diseño y voy a incluir ese código también.

No estoy seguro si esto es algo de qué preocuparse. Sé que la correlación no implica causalidad, pero cuando LogCat está inundado con esos registros, el desplazamiento a través de mi aplicación es notablemente janky.

Cualquier ayuda con averiguar lo que está pasando sería apreciada.

Archivo de disposición # 1:

 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:minHeight="72dp" android:padding="16dp"> <TextView android:id="@+id/event_name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:ellipsize="end" android:maxLines="1" android:text="Title" android:textSize="16sp" android:textColor="@color/primary_text_color"/> <TextView android:id="@+id/event_dates" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_below="@id/event_name" android:text="Dates" android:textColor="@color/secondary_text_color" android:textSize="14sp" /> <TextView android:id="@+id/event_location" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_below="@id/event_name" android:layout_toLeftOf="@id/event_dates" android:ellipsize="end" android:singleLine="true" android:text="Location" android:textColor="@color/secondary_text_color" android:textSize="14sp" /> </RelativeLayout> 

Archivo de disposición # 2:

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content"> <TextView android:id="@+id/event_type" android:textSize="14sp" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@color/primary" android:paddingLeft="16dp" android:paddingTop="8dp" android:paddingBottom="8dp" android:text="Header" android:textColor="#FFFFFF" /> </LinearLayout> 

CursorAdapter:

 public class EventCursorAdapter extends CursorAdapter { public String getKey(int position) { Cursor c = getCursor(); c.moveToPosition(position); return c.getString(c.getColumnIndex(Database.Events.KEY)); } public EventCursorAdapter(Context context, Cursor c, int flags) { super(context, c, flags); } @Override public View newView(Context context, Cursor cursor, ViewGroup viewGroup) { LayoutInflater inflater = LayoutInflater.from(context); return inflater.inflate(R.layout.list_item_event, viewGroup, false); } @Override public void bindView(View view, Context context, Cursor cursor) { TextView dates = (TextView) view.findViewById(R.id.event_dates); Date startDate = null, endDate = null; Log.d(Constants.LOG_TAG, "Start: " + cursor.getString(cursor.getColumnIndex(Database.Events.START))); try { startDate = new Date(cursor.getLong(cursor.getColumnIndex(Database.Events.START))); endDate = new Date(cursor.getLong(cursor.getColumnIndex(Database.Events.END))); } catch (Exception e) { // Oops. } dates.setText(EventHelper.getDateString(startDate, endDate)); TextView name = (TextView) view.findViewById(R.id.event_name); name.setText(cursor.getString(cursor.getColumnIndex(Database.Events.NAME))); TextView location = (TextView) view.findViewById(R.id.event_location); location.setText(cursor.getString(cursor.getColumnIndex(Database.Events.LOCATION))); } } 

Otras clases:

 public class EventTypeHeader extends ListHeader { public EventTypeHeader(String title) { super(title); } @Override public View getView(Context c, LayoutInflater inflater, View convertView) { ViewHolder holder; if (convertView == null || !(convertView.getTag() instanceof ViewHolder)) { convertView = inflater.inflate(R.layout.list_item_event_type_header, null); holder = new ViewHolder(); holder.text = (TextView) convertView.findViewById(R.id.event_type); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } holder.text.setText(getText()); return convertView; } private static class ViewHolder { TextView text; } } 

EDITAR

Voy a incluir lo que cada referencia de recursos de referencia en mi archivo de diseño

0x7f0b00d8: event_type

0xffe51c23: primary (el color primario de mi aplicación)

0x7f0b008a: event_name

0x7f0b00d6: event_dates

0x7f0b00d7: ubicación_de_evento

Además, tenga en cuenta que esto se está ejecutando en la vista previa 5.0. Sin embargo, todavía vi estos registros cuando estaba en 4.4.4.

EDIT # 2

Después de buscar a través del código fuente de Android, he descubierto que el único lugar que "Convertir a String" existe está en la clase android.content.res.TypedArray .

Sin embargo, ni siquiera instanciar, importar, o de alguna manera utilizar esa clase en mi proyecto! Esto sólo se vuelve más extraño y más extraño.

EDIT # 3

Por la petición de un comentarista, he subido mi styles.xml y colors.xml a una esencia, que se puede encontrar aquí .

Presenté un informe de fallo con el equipo de Android, ya que todavía no podía explicar o solucionar este problema. El informe de errores está aquí . Un comentarista sugirió que desmarque "Habilitar la inspección de atributos de vista" en las Opciones del desarrollador. He aquí, este problema ahora está arreglado! No recuerdo haber comprobado nunca eso, que es extraño, pero por lo menos ahora sé cuáles son las causas de este problema.

  • ¿Cómo obtener una identificación de recurso con un nombre de recurso conocido?
  • Android: ¿Por qué getDimension y getDimensionPixelSize devuelven lo mismo?
  • Almacenar datos estáticos en Android - recurso personalizado?
  • No se pueden filtrar los activos para densidades múltiples mediante herramientas de compilación SDK 21 o posterior
  • Android Studio exporta cadenas de la biblioteca de soporte a APK
  • ¿Cómo puedo convertir los recursos de Android a una cadena. Eg .: android.R.string.cancel?
  • Método getResourceId de TypedArray
  • Límite de almacenamiento en la carpeta de recursos y activos en android
  • Obtener valor entero desde el archivo de recursos dimens.xml en Android
  • Plural de cadenas de Android con nombres de identificadores separados por puntos
  • Obtener recursos de color como cadena
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.