Gson NoClassDefFoundError después de actualizar las herramientas ADT y SDK a v17

Hoy actualicé mi ADT y SDK Tools a v17 y mis proyectos usando la biblioteca gson jar de Google comenzaron a lanzar NoClassDefFoundError. Aquí está la salida de logcat:

> 03-22 12:30:58.941: E/AndroidRuntime(21672): FATAL EXCEPTION: main > 03-22 12:30:58.941: E/AndroidRuntime(21672): > java.lang.NoClassDefFoundError: com.google.gson.Gson 03-22 > 12:30:58.941: E/AndroidRuntime(21672): at > com.matriksdata.conn.XRequestHandler.connect(XRequestHandler.java:35) > 03-22 12:30:58.941: E/AndroidRuntime(21672): at > com.matriksdata.conn.XRequestHandler.makeRequest(XRequestHandler.java: > 29) 03-22 12:30:58.941: E/AndroidRuntime(21672): at > com.matriksdata.bavul.XBaseWithConnectionActivity.makeRequest(XBaseWithConnectionActivity.java: > 46) 03-22 12:30:58.941: E/AndroidRuntime(21672): at > com.matriksdata.ui.login.SplashScreenActivity.onCreate(SplashScreenActivity.java: > 36) 03-22 12:30:58.941: E/AndroidRuntime(21672): at > android.app.Activity.performCreate(Activity.java:4465) 03-22 > 12:30:58.941: E/AndroidRuntime(21672): at > android.app.Instrumentation.callActivityOnCreate(Instrumentation.java: > 1049) 03-22 12:30:58.941: E/AndroidRuntime(21672): at > android.app.ActivityThread.performLaunchActivity(ActivityThread.java: > 1919) 03-22 12:30:58.941: E/AndroidRuntime(21672): at > android.app.ActivityThread.handleLaunchActivity(ActivityThread.java: > 1980) 03-22 12:30:58.941: E/AndroidRuntime(21672): at > android.app.ActivityThread.access$600(ActivityThread.java:122) 03-22 > 12:30:58.941: E/AndroidRuntime(21672): at > android.app.ActivityThread$H.handleMessage(ActivityThread.java:1146) > 03-22 12:30:58.941: E/AndroidRuntime(21672): at > android.os.Handler.dispatchMessage(Handler.java:99) 03-22 > 12:30:58.941: E/AndroidRuntime(21672): at > android.os.Looper.loop(Looper.java:137) 03-22 12:30:58.941: > E/AndroidRuntime(21672): at > android.app.ActivityThread.main(ActivityThread.java:4340) 03-22 > 12:30:58.941: E/AndroidRuntime(21672): at > java.lang.reflect.Method.invokeNative(Native Method) 03-22 > 12:30:58.941: E/AndroidRuntime(21672): at > java.lang.reflect.Method.invoke(Method.java:511) 03-22 12:30:58.941: > E/AndroidRuntime(21672): at com.android.internal.os.ZygoteInit > $MethodAndArgsCaller.run(ZygoteInit.java:784) 03-22 12:30:58.941: > E/AndroidRuntime(21672): at > com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 03-22 > 12:30:58.941: E/AndroidRuntime(21672): at > dalvik.system.NativeStart.main(Native Method) 

¿algunas ideas?

Hoy enfrenté un problema similar.

Esto me lo arregló:

  • Elimine todos los proyectos de biblioteca de Android y jar externos de la ruta de comstackción.
  • Crea una carpeta llamada ‘libs’ en tu proyecto.
  • Coloque todos los .jars externos en esa carpeta, el ADT ahora debe colocarlos en ‘Dependencias de Android’.
  • Vuelva a importar todos sus proyectos anteriores de la biblioteca de Android de la manera normal.

El problema es que los archivos jar externos no se colocan en la carpeta ‘libs’ de forma predeterminada al usar Propiedades – Ruta de comstackción Java – Agregar jar externo, sino que se colocan en ‘Bibliotecas referenciadas’ en lugar de ‘Dependencias de Android’ y esto causa NoClassDefFoundError.

Por favor, consulte Manejo de dependencias en proyectos de Android para más detalles.

  1. Haga clic con el botón derecho en el proyecto y elija Propiedades
  2. Vaya a Java Build Path-Order y Export.
  3. Marque ‘Librerías privadas de Android’
  4. Haga clic en Proyecto, Limpiar

Para SDK Tools 17 necesita cambiar el nombre de la carpeta de su proyecto de biblioteca de “lib” a “libs” como se sugiere aquí . También echa un vistazo a esto .

Este sitio tiene la solución más simple que funcionó para mí, seleccione la checkbox de la biblioteca en “Ordenar y Exportar”.

http://android.foxykeep.com/dev/how-to-fix-the-classdefnotfounderror-with-adt-17

Creé una publicación rápida en mi blog explicando cómo solucionar esos problemas. Tiene que ver con las bibliotecas y un cambio que hicieron sobre cómo Eclipse administra las bibliotecas ahora. Puede verificarlo aquí si lo desea: http://xrigau.wordpress.com/2012/03/22/fix-some-problems-with-libraries-in-the-adt-17-plugin-10/

Verificar pedido y seleccionar en

 Project->Properties->Java build path->Order and Export: 

Ordene y seleccione:

 select Google APIs (optional) select Dependencies select Android Private Libraries [-] src [-] gen 

Y en las bibliotecas de tabs:

Dependencias Bibliotecas privadas (flasks en el directorio ‘libs’) Otros

¡Trabajó para mi!

Compruebe su biblioteca gson en la ruta de comstackción. tal vez gson libraty no son accesibles.

Este es un enlace oficial proporcionado por Android Devs en Google. Repase el artículo si se enfrenta a NoClassDefFoundException después de actualizar el complemento y / o SDK

https://plus.google.com/115995639636688350464/posts/38o8ZA6xQK4

descarga el contenedor GSON y hazlo como ruta de clase

Estoy usando GSON en un proyecto de biblioteca, así que para resolver este problema más allá de agregar el jar GSON en la ruta de comstackción, necesitaba declararlo en el manifiesto de mi proyecto de biblioteca como se muestra a continuación: