Gson NoClassDefFoundError después de que las herramientas ADT y SDK se actualicen a v17
Hoy he actualizado mis herramientas de ADT y SDK a v17 y mis proyectos usando la biblioteca de gson jar de Google comenzó a lanzar NoClassDefFoundError. Aquí está la salida 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?
- ERROR: java.lang.NoClassDefFoundError: android.support.v4.content.LocalBroadcastManager
- NoClassDefFoundError al intentar ejecutar pruebas unitarias en Android Studio
- Android JavaCV dilema, NoClassDefFoundError lanzado dentro del método 'dibujar' cuando se crea IplImage
- Android: NoClassDefFoundError android.os.AsyncTask
- Clases no encontradas
- Java.lang.NoClassDefFoundError: android / graphics / drawable / Icono
- Android facebook SDK haciendo error java.lang.NoClassDefFoundError
- Robolectric y Android Studio 1.1.0 y pruebas de biblioteca
- Java.lang.NoClassDefFoundError con todos los R classess cuando se utiliza la biblioteca de Android
- Extraño error NoClassDefFoundError al iniciar una versión firmada APK con proguard habilitado
- Obtención de error "java.lang.NoClassDefFoundError: com.android.tools.fd.runtime.AppInfo"
- Añadiendo el tiempo de Joda
- Crash: java.lang.NoClassDefFoundError: android.support.v7.appcompat.R $ layout
Me enfrenté a un problema similar hoy.
Esto me lo arregló:
- Quite todos los proyectos de la Biblioteca de Android y tarros externos de la ruta de construcción.
- Cree una carpeta llamada 'libs' en su proyecto.
- Coloque todos los .jars externos en esa carpeta, el ADT ahora debe colocarlos en 'Android dependencias'.
- Vuelva a importar todos los proyectos anteriores de la Biblioteca Android de la forma habitual.
El problema es que las jarras externas no se colocan en la carpeta 'libs' de forma predeterminada cuando se utiliza Propiedades – Java Build Path- Agregar jar externo, en lugar de eso se colocan en 'Referenced Libraries' en lugar de 'Android dependencies' y esto hace que NoClassDefFoundError.
Consulte Tratamiento de dependencias en proyectos de Android para obtener más detalles.
- Haga clic con el botón secundario en el proyecto y seleccione Propiedades
- Vaya a Java Build Path-Order y Exportar.
- Tick 'Android Private Libraries'
- Haga clic en Project, Clean
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 echar un vistazo a esto .
Este sitio tiene la solución más simple que funcionó para mí, seleccione la casilla de verificación de la biblioteca en "Pedido y exportación".
http://android.foxykeep.com/dev/how-to-fix-the-classdefnotfounderror-with-adt-17
He creado una publicación rápida en mi blog que explica cómo solucionar esos problemas. Tiene que ver con las bibliotecas y con un cambio en cómo Eclipse administra las bibliotecas ahora. Puede comprobarlo aquí si lo desea: http://xrigau.wordpress.com/2012/03/22/fix-some-problems-with-libraries-in-the-adt-17-plugin-10/
Compruebe el pedido y seleccione
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 librerías de fichas:
Dependencias Bibliotecas privadas (frascos en el directorio 'libs') Otros
Trabajó para mí!
Compruebe su biblioteca de gson en la trayectoria de la estructura. Quizás libris de gson no son accesibles.
Este es un enlace oficial proporcionado por Android Devs en Google. Revise el artículo si se enfrenta a NoClassDefFoundException después de actualizar el complemento y / o SDK
https://plus.google.com/115995639636688350464/posts/38o8ZA6xQK4
Descargar el tarro de GSON y hacer como ruta de clase
Estoy utilizando GSON en un proyecto de biblioteca, por lo que para resolver este problema más allá de agregar el tarro GSON en la ruta de construcción, necesitaba declararlo en mi manifiesto del proyecto de la biblioteca como el siguiente:
<uses-library android:name="com.google.gson" />
- Emulador de Android: No se pudo seleccionar
- Android toma la captura de pantalla mediante programación