Herramientas SDK actualizadas y ADT a 17 y ahora obtener VerifyErrors

Tengo un proyecto que hace referencia a dos proyectos de biblioteca. Después de actualizar las herramientas ADT y SDK a la versión 17 , la aplicación se bloquea en cuanto se produce una referencia a una clase definida en uno de los proyectos de la biblioteca. Errores como:

Unable to resolve superclass of Lcom/my/package/name/MyActivity; (118) Link of class 'Lcom/my/package/name/MyActivity;' failed VFY: unable to find class referenced in signature (Lcom/my/package/name/MyActivity;) 

y:

  FATAL EXCEPTION: main java.lang.VerifyError: my/package/name/util/SomeClass at my.package.name.App.onCreate(App.java:120) at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:969) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:3925) at android.app.ActivityThread.access$1300(ActivityThread.java:122) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1184) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:4340) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) at dalvik.system.NativeStart.main(Native Method) 

(Mi paquete y las clases no son nombrados de esa manera, solo los modificaron para publicarlos aquí)

¿Alguna idea sobre lo que está sucediendo aquí? Por lo que puedo decir que no hay errores de compilación y mi proyecto parece que hace referencia al proyecto de biblioteca correctamente.

Tuve el mismo problema. Encontrar este post: Cómo arreglar el "NoClassDefFoundError" con ADT 17 me ahorrar algo de frustración.

Whew, que era miedo, pero sólo traté de un montón de cosas diferentes hasta que funcionó. En algún lugar dentro de todo esto, lo resolvió. Mi proyecto de biblioteca tiene un puñado de tarros agregados a la carpeta "lib" y adjuntos a la ruta de construcción.

He leído esta nota de registro de cambios: http://tools.android.com/recent/dealingwithdependenciesinandroidprojects sobre cambios en bibliotecas y dependencias. Me di cuenta de esto:

Los proyectos tienen carpetas de origen, así como el proyecto de biblioteca y las dependencias de archivos jar. Con ninguna otra configuración necesaria que añadir proyectos de biblioteca como una dependencia en project.properties, el classpath de un proyecto se rellena automáticamente con:

 The content of the project's libs/*.jar The output of the Library Projects. The Library Projects' libs/*.jar 

Por alguna razón, la carpeta de mi proyecto de biblioteca se llamaba "lib" y no "libs". He estado usando de esa manera durante casi dos años sin ningún problema, pero seguí adelante y lo cambié a "libs". A continuación, actualizó el proyecto, y apagó la bandera "es la biblioteca", y luego otra vez para asegurarse de que vio ese cambio.

Además, con las nuevas herramientas, mencionan que maneja incluyendo los tarros del proyecto de la biblioteca en el proyecto que hace referencia a la biblioteca. Hasta este punto había agregado los jarros del proyecto de la biblioteca al proyecto de referencia manualmente. Así que entré en el proyecto de referencia, y eliminado los tarros de la ruta de construcción. Entonces, cuando en las propiedades del proyecto y se eliminó el proyecto de la biblioteca y se volvió a agregar.

Por último, me di cuenta de que un archivo jar estaba en la carpeta del proyecto de la biblioteca, pero no estaba siendo utilizado. Estaba justo en la carpeta. Quité ese archivo.

Así que en algún lugar allí comenzó a funcionar de nuevo. Me imagino que la verdadera solución estaba cambiando "lib" a "libs", pero quería asegurarse de que lo mencioné todo en caso de que ayuda a cualquier otro desarrollador experimentando miedo y pánico en sus corazones. ¡Buena suerte!

@kargi

Por regla general, creo que la solución aquí y aquí es una muy mala práctica. Maven resolvió este negocio de carpetas lib ridículo hace mucho tiempo, pero Maven tampoco es muy eficiente en la construcción de Android, así que recomendaría usar la función de exportación de Eclipse, como describo aquí .

  • Después de extraer el código del widget lib ya no funciona
  • Cómo incluir archivos jar en el proyecto de la biblioteca android
  • La aplicación basada en biblioteca instala 2 archivos APK, no uno - ¿Por qué?
  • Bibliotecas de código abierto de Android? ¿Vistas reutilizables, ViewGroups, adaptadores etc?
  • Gradle: añadir dependencia para un sabor específico de la biblioteca
  • Cómo hacer referencia a un icono de un proyecto de biblioteca en AndroidManifest.xml de la aplicación
  • Error 'aapt'. Pre Compiler Build abortado
  • Cómo llamar a una actividad de aplicación de un proyecto de biblioteca en Android
  • ActivityNotFoundException (YES, esta actividad se declara en AndroidManifest.xml)
  • Actividad inicial de Android-Library-Project
  • ¿Cómo agregar un proyecto de biblioteca a un proyecto androide?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.