Recibí un informe de bloqueo con un error causado por una excepción Resource.NotFoundException. Lo que es extraño, sin embargo, es que lo arroja la biblioteca de compatibilidad de Android en un DialogFragment cuando intenta utilizar el color res/color/secondary_text_dark.xml (durante su creación). Este es un recurso de Android (se encuentra en android.R.color.secondary_text_dark), así que supongo que cada dispositivo debe tener esto disponible.Resources.NotFoundException lanzado en res/color/secondary_text_dark.xml
Tengo una idea de que la excepción se debe a que Proguard ha ofuscado los recursos, pero no estoy seguro de cómo evitarlo. No puedo reproducir el bloqueo en mi Nexus One, por lo que no podré verificar si un cambio lo soluciona.
¿Tengo razón sobre el ofuscador o hay otras cosas que podrían causar esto?
Muchas gracias.
He adjuntado el registro en:
android.view.InflateException: Binary XML file line #8: Error inflating class <unknown>
at android.view.LayoutInflater.createView(LayoutInflater.java:513)
at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:563)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:618)
at android.view.LayoutInflater.inflate(LayoutInflater.java:407)
at android.view.LayoutInflater.inflate(LayoutInflater.java:320)
at org.kaloersoftware.kaloerclock.MathDialogFragment.android.view.View onCreateView(android.view.LayoutInflater,android.view.ViewGroup,android.os.Bundle)(Unknown Source)
at android.support.v4.app.FragmentManagerImpl.void moveToState(android.support.v4.app.Fragment,int,int,int)(Unknown Source)
void moveToState(android.support.v4.app.Fragment)
void moveToState(int,boolean)
void moveToState(int,int,int,boolean)
at android.support.v4.app.FragmentManagerImpl.void moveToState(android.support.v4.app.Fragment,int,int,int)(Unknown Source)
void moveToState(android.support.v4.app.Fragment)
void moveToState(int,boolean)
void moveToState(int,int,int,boolean)
at android.support.v4.app.BackStackRecord.void run()(Unknown Source)
at android.support.v4.app.FragmentManagerImpl.boolean execPendingActions()(Unknown Source)
at android.support.v4.app.FragmentManagerImpl$1.void run()(Unknown Source)
at android.os.Handler.handleCallback(Handler.java:587)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:4669)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:876)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:634)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.reflect.InvocationTargetException
at android.widget.TextView.<init>(TextView.java:329)
at java.lang.reflect.Constructor.constructNative(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:446)
at android.view.LayoutInflater.createView(LayoutInflater.java:500)
... 20 more
Caused by: android.content.res.Resources$NotFoundException: File res/color/secondary_text_dark.xml from color state list resource ID #0x0
at android.content.res.Resources.loadColorStateList(Resources.java:1817)
at android.content.res.TypedArray.getColorStateList(TypedArray.java:342)
at android.widget.TextView.<init>(TextView.java:394)
... 24 more
Caused by: android.content.res.Resources$NotFoundException: File res/color/secondary_text_dark.xml from xml type colorstatelist resource ID #0x0
at android.content.res.Resources.loadXmlResourceParser(Resources.java:1924)
at android.content.res.Resources.loadColorStateList(Resources.java:1812)
... 26 more
Y esta es la layout.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:padding="8dip"
android:background="#33332D"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="50sp"
android:gravity="center"
android:paddingBottom="10dip"
android:textColor="@color/ltgrey"
android:id="@+id/math_question_question"
/>
<TableLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:weightSum="2">
<TableRow>
<Button
android:textSize="30sp"
android:id="@+id/math_question_ans1"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"/>
<Button
android:textSize="30sp"
android:id="@+id/math_question_ans2"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"/>
</TableRow>
<TableRow>
<Button
android:textSize="30sp"
android:id="@+id/math_question_ans3"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"/>
<Button
android:textSize="30sp"
android:id="@+id/math_question_ans4"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"/>
</TableRow>
</TableLayout>
<Button
android:textSize="30sp"
android:id="@+id/math_question_cancel"
android:text="@string/math_question_cancel"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
El textColor en el primer TextView refiere a esto en mi archivo colors.xml
<color name="ltgrey">#ffe0e0e0</color>
Oh, ya veo. Parece un error en la biblioteca de compatibilidad, ¿no? Intentaré agregar el color secondary_text_dark.xml a mi proyecto y veré si atrapa eso. – Kaloer
@Kaloer: Your 'MathDialogFragment' se refiere a' R.color.secondary_text_dark' por lo que sea que esté inflando en 'onCreateView()', específicamente en algunos 'TextView'. A menos que este problema aparezca en la actualización de ACL publicada ayer, la ACL no tiene una dependencia en 'R.color.secondary_text_dark'. Implementé con éxito un 'DialogFragment' sin este recurso de proyecto local. – CommonsWare
De acuerdo, edité mi pregunta y agregué el archivo xml de diseño que infló en 'onCreateView()'. No sé por qué hay un problema con eso. – Kaloer