Obteniendo "Causado por: java.lang.VerifyError:"

He creado una aplicación Android que se utiliza como biblioteca en otra aplicación de Android. He utilizado algunos tarros de terceros en la aplicación de Android que actúa como una biblioteca. Cuando enlace esta biblioteca en mi aplicación Android y la ejecuto, estoy recibiendo el error de verificación cuando intenta acceder a la clase presente en la biblioteca. ¿Puedo saber cuál es el problema bloqueo aquí para mí? Cualquier ayuda muy apreciada ..

Adjunto el registro aquí y Parser1 es la clase dentro de la biblioteca. Estoy consiguiendo el error en la línea cuando intento crear el objeto para la clase Parser1.

06-06 10:05:43.742: WARN/dalvikvm(224): VFY: unable to resolve static method 3084: Lorg/codehaus/jackson/JsonToken;.values ()[Lorg/codehaus/jackson/JsonToken; 06-06 10:05:43.742: DEBUG/dalvikvm(224): VFY: replacing opcode 0x71 at 0x0005 06-06 10:05:43.742: DEBUG/dalvikvm(224): Making a copy of Lcom/support/utils/Parser1;.$SWITCH_TABLE$org$codehaus$jackson$JsonToken code (522 bytes) 06-06 10:05:43.752: WARN/dalvikvm(224): VFY: unable to find class referenced in signature (Lorg/codehaus/jackson/JsonParser;) 06-06 10:05:43.752: INFO/dalvikvm(224): Could not find method org.codehaus.jackson.JsonParser.getCurrentToken, referenced from method com.support.utils.Parser1.addSectionContentData 06-06 10:05:43.761: WARN/dalvikvm(224): VFY: unable to resolve virtual method 3077: Lorg/codehaus/jackson/JsonParser;.getCurrentToken ()Lorg/codehaus/jackson/JsonToken; 06-06 10:05:43.761: DEBUG/dalvikvm(224): VFY: replacing opcode 0x74 at 0x0002 06-06 10:05:43.761: DEBUG/dalvikvm(224): Making a copy of Lcom/support/utils/Parser1;.addSectionContentData code (2421 bytes) 06-06 10:05:43.761: WARN/dalvikvm(224): VFY: unable to resolve exception class 685 (Lorg/codehaus/jackson/JsonParseException;) 06-06 10:05:43.771: WARN/dalvikvm(224): VFY: unable to resolve exception class 685 (Lorg/codehaus/jackson/JsonParseException;) 06-06 10:05:43.771: WARN/dalvikvm(224): VFY: unable to resolve exception class 685 (Lorg/codehaus/jackson/JsonParseException;) 06-06 10:05:43.771: WARN/dalvikvm(224): VFY: unable to find exception handler at addr 0x19b 06-06 10:05:43.771: WARN/dalvikvm(224): VFY: rejected Lcom/support/utils/Parser1;.addSectionContentData (Lorg/codehaus/jackson/JsonParser;Ljava/util/List;Lcom/support/ModelClasses/SectionContent;Lcom/support/ModelClasses/FeatureInfo;ZZLjava/lang/String;)Ljava/util/List; 06-06 10:05:43.781: WARN/dalvikvm(224): VFY: rejecting opcode 0x0d at 0x019b 06-06 10:05:43.781: WARN/dalvikvm(224): VFY: rejected Lcom/support/utils/Parser1;.addSectionContentData (Lorg/codehaus/jackson/JsonParser;Ljava/util/List;Lcom/support/ModelClasses/SectionContent;Lcom/support/ModelClasses/FeatureInfo;ZZLjava/lang/String;)Ljava/util/List; 06-06 10:05:43.781: WARN/dalvikvm(224): Verifier rejected class Lcom/support/utils/Parser1; 06-06 10:05:43.793: WARN/dalvikvm(224): threadid=15: thread exiting with uncaught exception (group=0x4001b188) 06-06 10:05:43.793: ERROR/AndroidRuntime(224): Uncaught handler: thread AsyncTask #1 exiting due to uncaught exception 06-06 10:05:43.812: ERROR/AndroidRuntime(224): java.lang.RuntimeException: An error occured while executing doInBackground() 06-06 10:05:43.812: ERROR/AndroidRuntime(224): at android.os.AsyncTask$3.done(AsyncTask.java:200) 06-06 10:05:43.812: ERROR/AndroidRuntime(224): at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273) 06-06 10:05:43.812: ERROR/AndroidRuntime(224): at java.util.concurrent.FutureTask.setException(FutureTask.java:124) 06-06 10:05:43.812: ERROR/AndroidRuntime(224): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307) 06-06 10:05:43.812: ERROR/AndroidRuntime(224): at java.util.concurrent.FutureTask.run(FutureTask.java:137) 06-06 10:05:43.812: ERROR/AndroidRuntime(224): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1068) 06-06 10:05:43.812: ERROR/AndroidRuntime(224): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:561) 06-06 10:05:43.812: ERROR/AndroidRuntime(224): at java.lang.Thread.run(Thread.java:1096) 06-06 10:05:43.812: ERROR/AndroidRuntime(224): Caused by: java.lang.VerifyError: com.support.utils.Parser1 06-06 10:05:43.812: ERROR/AndroidRuntime(224): at com.Sample.checkforversioning(Sample.java:652) 06-06 10:05:43.812: ERROR/AndroidRuntime(224): at com.Sample$checkVersionThread.doInBackground(Sample.java:682) 06-06 10:05:43.812: ERROR/AndroidRuntime(224): at com.Sample$checkVersionThread.doInBackground(Sample.java:1) 06-06 10:05:43.812: ERROR/AndroidRuntime(224): at android.os.AsyncTask$2.call(AsyncTask.java:185) 06-06 10:05:43.812: ERROR/AndroidRuntime(224): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305) 06-06 10:05:43.812: ERROR/AndroidRuntime(224): ... 4 more 06-06 10:05:43.832: INFO/Process(52): Sending signal. PID: 224 SIG: 3 

Gracias, Senthil.M

En Eclipse , vaya a las Project properties -> Java Build Path del Project properties -> Java Build Path . Seleccione la ficha Order and Export y compruebe sus tarros de terceros.

Eso puede ser causado por algo en el frasco de acceso a algo en Java que no está en el SDK de Android. Busque en LogCat la excepción y puede indicarle lo que le falta. Si tiene las fuentes para el tarro de terceros, intente incluirlas directamente en su proyecto; Que ayudará a determinar el problema.

También necesita ejecutar su archivo jar a través de la herramienta "dx" que viene con el sdk.

Si está usando ant, entonces debe agregar todos sus jarros externos al directorio siguiente "libs" y también agregar la siguiente línea en un nuevo archivo: ant.properties: jar.libs.dir = libs

Si obtiene un VerifyError después de crear una versión de lanzamiento de su aplicación mediante ProGuard, podría estar relacionado con algún problema de optimización. Consulte la documentación , que sugiere esencialmente inhabilitar la optimización mediante -dontoptimize .

Quitar todos los archivos jar de la carpeta / libs y luego agregarlos de nuevo seguido de limpieza del proyecto y construirlo fijo para mí.

El mismo error se me ocurrió, ya que traté de capturar la excepción SQLDataException en el dispositivo de la API v.8 ya que la clase correspondiente no está incluida en la API v.8 (el error no ocurrió en los dispositivos v.14, donde esa clase es incluido). De hecho, SQLDataException.class no está presente sólo en el android.jar de la API v.8, mientras que está incluido en la API v.14. Así que reemplazé la excepción SQLDataException con la excepción SQLException (cuya SQLDataException es una subclase) y mi aplicación ahora se ejecuta correctamente en ambos dispositivos de la API.

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