2012-01-14 13 views
9

De vez en cuando Fuera de muchos usuarios de mi aplicación en un mercado (misma versión -La misma APK) me sale error como este ... Creo que lo principal aquí es: Caused by: java.io.FileNotFoundException: res/drawable/ic_new.pngexcepción de extraño recurso no encontró

Este archivo definitivamente está allí y funciona en otros dispositivos. Recibo este error de vez en cuando en otros dispositivos con archivos aleatorios. ¿Cómo es posible?

android.view.InflateException: Binary XML file line #7: Error inflating class <unknown> 
    at android.view.LayoutInflater.createView(LayoutInflater.java:518) 
    at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56) 
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:568) 
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:623) 
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:626) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:408) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:320) 
    at com.activities.MailListActivity$MailListCursorAdapter.getView(MailListActivity.java:171) 
    at android.widget.AbsListView.obtainView(AbsListView.java:1560) 
    at android.widget.ListView.measureHeightOfChildren(ListView.java:1289) 
    at android.widget.ListView.onMeasure(ListView.java:1200) 
    at android.view.View.measure(View.java:8313) 
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138) 
    at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1017) 
    at android.widget.LinearLayout.measureVertical(LinearLayout.java:386) 
    at android.widget.LinearLayout.onMeasure(LinearLayout.java:309) 
    at android.view.View.measure(View.java:8313) 
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138) 
    at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1017) 
    at android.widget.LinearLayout.measureVertical(LinearLayout.java:386) 
    at android.widget.LinearLayout.onMeasure(LinearLayout.java:309) 
    at android.view.View.measure(View.java:8313) 
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138) 
    at android.widget.FrameLayout.onMeasure(FrameLayout.java:250) 
    at android.view.View.measure(View.java:8313) 
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138) 
    at android.widget.FrameLayout.onMeasure(FrameLayout.java:250) 
    at android.view.View.measure(View.java:8313) 
    at android.view.ViewRoot.performTraversals(ViewRoot.java:844) 
    at android.view.ViewRoot.handleMessage(ViewRoot.java:1865) 
    at android.os.Handler.dispatchMessage(Handler.java:99) 
    at android.os.Looper.loop(Looper.java:130) 
    at android.app.ActivityThread.main(ActivityThread.java:3687) 
    at java.lang.reflect.Method.invokeNative(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:507) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600) 
    at dalvik.system.NativeStart.main(Native Method) 
Caused by: java.lang.reflect.InvocationTargetException 
    at java.lang.reflect.Constructor.constructNative(Native Method) 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:415) 
    at android.view.LayoutInflater.createView(LayoutInflater.java:505) 
    ... 37 more 
Caused by: android.content.res.Resources$NotFoundException: File res/drawable/ic_new.png from drawable resource ID #0x7f02001c 
    at android.content.res.Resources.loadDrawable(Resources.java:1714) 
    at android.content.res.TypedArray.getDrawable(TypedArray.java:601) 
    at android.widget.ImageView.<init>(ImageView.java:118) 
    at android.widget.ImageView.<init>(ImageView.java:108) 
    ... 40 more 
Caused by: java.io.FileNotFoundException: res/drawable/ic_new.png 
    at android.content.res.AssetManager.openNonAssetNative(Native Method) 
    at android.content.res.AssetManager.openNonAsset(AssetManager.java:406) 
    at android.content.res.Resources.loadDrawable(Resources.java:1706) 
    ... 43 more 
+0

¿Cómo se recopilan los errores? ¿Puedes decir qué error de dispositivos? ¿Son ellos LDPI? Tal vez el gráfico es demasiado grande y las pantallas pequeñas no pueden encontrarlo en drawable-ldpi – TryTryAgain

+0

Todo bajo drawable \ Recibo errores en el mercado de Android – katit

+0

¿Hay algo inusual en la aplicación, p. mecanismo de actualización personalizado para sus recursos o su aplicación, ¿los generadores que no puede encontrar generan de alguna manera? –

Respuesta

4

No ha mencionado específicamente la forma en que organiza las imágenes en su aplicación. Sin embargo, existen las carpetas específicas drawable-ldpi, 'drawable-mdpi', 'drawable-hdpi' e incluso 'drawable-xhdpi' junto con la carpeta básica 'drawable'.

Quizás esté familiarizado con todo eso, pero repetiré sus patrones de uso, porque tengo la sensación de que esto podría estar fallando. Los ldpi, mdpi, hdpi y xhdpi significan dpi bajos, medios, altos y muy altos: diferentes resoluciones de pantalla. Android tiene una forma especial de determinar las características de hardware del dispositivo en el que se está ejecutando y así asignarlo a las más relevantes: ldpi, mdpi, hdpi o xhdpi.

Cuando se trata de un lugar en el que necesita una imagen, digamos image.png primero busca drawable-mdpi/image.png (si ha determinado que su dispositivo está mapeando a mdpi). Si no se encuentra dicha imagen, se ejecuta y prueba drawable/image.png y se volverá a escalar si se encuentra. Y eso es todo, si esas dos búsquedas han fallado y ha suministrado la imagen en alguna carpeta de otras resoluciones, no la usará. Esto significa que si instala la aplicación en el dispositivo xhdpi y ha suministrado solo imágenes ldpi y mdpi en dicho dispositivo, no se encontrará ninguna imagen relevante.

Así que mi sugerencia es que tengas algunas de tus imágenes solo en algunos formatos. Esto es lo mejor que puedo hacer sin más información. Espero haberlo entendido correctamente y seré de ayuda.

+0

No hay nada. Todas las imágenes en la carpeta básica dibujable y obtengo estos errores en el mercado de Android. Muy raro. Tal vez una vez cada 2 semanas y la gente usa aplicaciones a diario. – katit

Cuestiones relacionadas