Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Java.lang.NoClassDefFoundError: en dalvik.system.NativeStart.main (Método nativo)

Algunos de los usuarios de mi aplicación obtuvieron esta excepción

java.lang.NoClassDefFoundError: [generic] at dalvik.system.NativeStart.main(Native Method) 

No es una excepción común debido a gran número de usuarios y sólo algunos de ellos tienen esta excepción. No utilizo ninguna biblioteca nativa y todas las bibliotecas externas no utilizan ningún código nativo

Versión de Android donde sucedió:

  1. Android 4.0.3 – 4.0.4 (97.7%)
  2. Android 4.0 – 4.0.2 (1.5%)
  3. Android 4.1 (0,8%)

¿Puede alguien ayudarme con la solución? ¿Puede el receptor en AndroidManifest llamar a este problema?

One Solution collect form web for “Java.lang.NoClassDefFoundError: en dalvik.system.NativeStart.main (Método nativo)”

NoClassDefFoundError con la etiqueta [generic] es lanzada por la VM, desde un objeto "prefabricado". La excepción no tiene ningún rastro de pila útil, pero generalmente no aparece por sí mismo.

Antecedentes: el mecanismo del cargador de clases requiere lanzar excepciones cuando no se puede encontrar una clase en un cargador. Los cargadores tienen que diferir a su cargador principal, así que si intenta cargar una clase de aplicación, primero preguntará al cargador de arranque, que fallará y lanzará una excepción. El cargador de aplicaciones hace su propia búsqueda, que probablemente tendrá éxito.

Esto significa que la VM está asignando una excepción, inicializando el objeto y rellenando el rastro de la pila … y luego tirándolo, para cada clase que no salga del cargador de clases de arranque.

Para evitar asignaciones inútiles, el cargador de arranque (implementado dentro de la VM) lanza un objeto genérico de excepción preasignado. Dado que el objeto se ha formado completamente cuando la máquina virtual se está iniciando, no tiene ninguna información de seguimiento de pila significativa.

En la práctica no se ven estos, porque las aplicaciones no suelen cargar las clases directamente desde el cargador de arranque. La aplicación o el cargador del sistema crea una excepción significativa para usted. Incluso si solicita una clase desde el cargador de arranque directamente, sólo debe ver esto como la "causa" de un ClassNotFoundException .

El DexClassLoader se escribió para utilizar un código de error en lugar de una excepción cuando no se puede encontrar una clase, por lo que no verá en absoluto a través de esa ruta.

Si el NoClassDefFoundError es la "causa" de una excepción más grande, necesita obtener la excepción más externa, ya que tendrá el rastreo de pila significativo. Si usted está viendo estos aparecen por sí mismos, entonces algo muy extraño está haciendo en – lo más probable es que un poco de código está tratando de cargar las clases directamente y está pasando null lugar de un objeto classloader (que es cómo hacer referencia al cargador bootstrap) .

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.