TypedValue Converting a String

En puntos aleatorios mientras uso mi aplicación de Android, LogCat está inundado de docenas 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 aesta 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 ID de recursos de los registros (r = 0x?) Apuntan a vistas / atributos de vista dentro de uno de los dos diseños, que incluiré a continuación.

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

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

Cualquier ayuda para descubrir lo que está sucediendo sería apreciada.

Archivo de diseño 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 diseño # 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>

Adaptador de cursor:

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

Otra clase:

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

Incluiré las referencias de cada ID de recurso en mi archivo de diseño

0x7f0b00d8:event_type

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

0x7f0b008a:event_name

0x7f0b00d6:event_dates

0x7f0b00d7:event_location

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.

EDITAR # 2

Después de buscar a través del código fuente de Android, descubrí que el único lugar donde existe "Convertir a cadena" es en la claseandroid.content.res.TypedArray.

Sin embargo, ¡ni siquiera ejemplifico, importo ni utilizo de ninguna manera esa clase en mi proyecto! Esto se vuelve más y más raro.

EDITAR # 3

Por solicitud de un comentarista, he subido mistyles.xml ycolors.xml a una esencia, que se puede encontraraquí.

Respuestas a la pregunta(1)

Su respuesta a la pregunta