Tengo un problema con una de mis aplicaciones y me preguntaba si alguien podría darme alguna idea de lo que puede causarla.Android ClassNotFoundException
estoy recibiendo un ClassNotFoundException, la importante línea de abajo es
E/AndroidRuntime(21982): Caused by: java.lang.ClassNotFoundException: couk.doridori.goigo.customUI.GoBoardView in loader [email protected]
Ahora esta aplicación ha estado fuera durante Hace más de un año y 2 días tuve dos usuarios separados en contacto conmigo en relación con este tema, uno en un HTC Wildfire (2.1) y uno a Samsung Galaxy S (?). Ahora no puedo volver a crear este problema en mis dispositivos (2.2 y 1.6) o un emulador (2.1) y realmente no puedo entender por qué esta clase no puede ser encontrada por el cargador de clases. ¡He pasado un tiempo buscando en Google sin éxito, y espero que alguien tenga algunos consejos! Solo parece ser cuando se carga una actividad que cuando se configura contentView, trata de inflar una vista personalizada llamada GoBoardView que extiende la clase View, esto es solo hacer un simple lienzo de dibujo y no está utilizando ninguna biblioteca de terceros o cualquier otra clase que tenga un nombre de paquete clash o algo así.
Por favor ayuda! En caso de que sea un problema de compilación, estoy actualizando todos mis SDK y ADT a través de Eclipse, ya que estaba compilando contra 1.6 y usando el antiguo ADT, pero no tengo idea de si esto ayudará a que valga la pena intentarlo. ¡Cualquier consejo sería genial, gracias! (Ver más abajo para EDITAR)
E/AndroidRuntime(21982): java.lang.RuntimeException: Unable to start activity ComponentInfo{couk.doridori.goigoFull/couk.doridori.goigoFull.Board}: android.view.InflateException: Binary XML file line #14: Error inflating class couk.doridori.goigo.customUI.GoBoardView
E/AndroidRuntime(21982): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2596)
E/AndroidRuntime(21982): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2621)
E/AndroidRuntime(21982): at android.app.ActivityThread.access$2200(ActivityThread.java:126)
E/AndroidRuntime(21982): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1932)
E/AndroidRuntime(21982): at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime(21982): at android.os.Looper.loop(Looper.java:123)
E/AndroidRuntime(21982): at android.app.ActivityThread.main(ActivityThread.java:4603)
E/AndroidRuntime(21982): at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(21982): at java.lang.reflect.Method.invoke(Method.java:521)
E/AndroidRuntime(21982): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
E/AndroidRuntime(21982): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
E/AndroidRuntime(21982): at dalvik.system.NativeStart.main(Native Method)
E/AndroidRuntime(21982): Caused by: android.view.InflateException: Binary XML file line #14: Error inflating class couk.doridori.goigo.customUI.GoBoardView
E/AndroidRuntime(21982): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:576)
E/AndroidRuntime(21982): at android.view.LayoutInflater.rInflate(LayoutInflater.java:618)
E/AndroidRuntime(21982): at android.view.LayoutInflater.rInflate(LayoutInflater.java:621)
E/AndroidRuntime(21982): at android.view.LayoutInflater.rInflate(LayoutInflater.java:621)
E/AndroidRuntime(21982): at android.view.LayoutInflater.inflate(LayoutInflater.java:407)
E/AndroidRuntime(21982): at android.view.LayoutInflater.inflate(LayoutInflater.java:320)
E/AndroidRuntime(21982): at android.view.LayoutInflater.inflate(LayoutInflater.java:276)
E/AndroidRuntime(21982): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:207)
E/AndroidRuntime(21982): at android.app.Activity.setContentView(Activity.java:1629)
E/AndroidRuntime(21982): at couk.doridori.goigoFull.Board.onCreate(Board.java:31)
E/AndroidRuntime(21982): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
E/AndroidRuntime(21982): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2544)
E/AndroidRuntime(21982): ... 11 more
E/AndroidRuntime(21982): Caused by: java.lang.ClassNotFoundException: couk.doridori.goigo.customUI.GoBoardView in loader [email protected]
E/AndroidRuntime(21982): at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:243)
E/AndroidRuntime(21982): at java.lang.ClassLoader.loadClass(ClassLoader.java:573)
E/AndroidRuntime(21982): at java.lang.ClassLoader.loadClass(ClassLoader.java:532)
E/AndroidRuntime(21982): at android.view.LayoutInflater.createView(LayoutInflater.java:466)
E/AndroidRuntime(21982): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:565)
E/AndroidRuntime(21982): ... 22 more
EDITAR
Ok, la investigación de algunos de los enlaces que los usuarios han comentado en la respuesta a esta pregunta, parece que el uso de un contexto equivocado para actividades de carga puede causar este problema Me parece interesante esta becuase uno de los dos informes de registro que he sido enviado tiene esta excepción precedido por
W/ActivityManager(1222): startActivity called from non-Activity context; forcing Intent.FLAG_ACTIVITY_NEW_TASK for: Intent { flg=0x20000 cmp=couk.doridori.goigoFull/.Games }
que es bastante explica por sí mismo - problema es que no tengo idea de dónde podría estar siendo inició esta actividad desde donde usa un contexto que no es de actividad, así que estoy un poco perplejo, pensando que podría ser algo multitarea como una rareza y que se lo devuelva al primer plano de algo. Esto aparentemente puede causar problemas con el cargador de clases. Si esto sucediera en un teléfono de un usuario, no puedo ver por qué no puedo reproducir esto (y la mayoría de los otros usuarios tampoco).
La otra cosa que encontré a través de los enlaces que es interesante, es que algunas personas han tenido problemas debido a una "instalación apk incorrecta", que puede resolverse mediante una reinstalación, que he preguntado a los usuarios que tuvieron el problema para probar (que no hace la diferencia). También parece que una vez que se encuentra el problema (que es el primer uso) será persistente.
¿Tiene un receptor de difusión con el filtro de intención Intent.FLAG_ACTIVITY_NEW_TASK? Este podría ser el contexto fuera de la actividad que podría intentar iniciar una de sus actividades. –