zzbq - java lang noclassdeffounderror failed resolution of lcom google android gms internal zzbgl
java.lang.NoClassDefFoundError: ResoluciĆ³n fallida de: Landroid/support/v4/os/BuildCompat (7)
Actualice la implementación com.google.android.gms: play-services-maps en gradle a una versión más nueva.
Eso funciona para mi.
He actualizado las bibliotecas de AppCompat a 24.2.1 y el SDK a Android 7 en mi instalación de Eclipse. Desde entonces, no soy capaz de ejecutar ninguna de mis aplicaciones. Agradezco si puedes ayudar un poco con eso ...
E/AndroidRuntime(17555): java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/v4/os/BuildCompat;
E/AndroidRuntime(17555): at android.support.v7.app.AppCompatDelegate.create(AppCompatDelegate.java:196)
E/AndroidRuntime(17555): at android.support.v7.app.AppCompatDelegate.create(AppCompatDelegate.java:181)
E/AndroidRuntime(17555): at android.support.v7.app.AppCompatActivity.getDelegate(AppCompatActivity.java:521)
E/AndroidRuntime(17555): at android.support.v7.app.AppCompatActivity.onCreate(AppCompatActivity.java:71)
E/AndroidRuntime(17555): at com.ryosoftware.calendareventsnotifier.MainActivity.onCreate(MainActivity.java:844)
E/AndroidRuntime(17555): at android.app.Activity.performCreate(Activity.java:5990)
E/AndroidRuntime(17555): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
E/AndroidRuntime(17555): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2311)
E/AndroidRuntime(17555): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2420)
E/AndroidRuntime(17555): at android.app.ActivityThread.access$900(ActivityThread.java:154)
E/AndroidRuntime(17555): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1321)
E/AndroidRuntime(17555): at android.os.Handler.dispatchMessage(Handler.java:102)
E/AndroidRuntime(17555): at android.os.Looper.loop(Looper.java:135)
E/AndroidRuntime(17555): at android.app.ActivityThread.main(ActivityThread.java:5294)
E/AndroidRuntime(17555): at java.lang.reflect.Method.invoke(Native Method)
E/AndroidRuntime(17555): at java.lang.reflect.Method.invoke(Method.java:372)
E/AndroidRuntime(17555): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904)
E/AndroidRuntime(17555): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:699)
E/AndroidRuntime(17555): Caused by: java.lang.ClassNotFoundException: Didn''t find class "android.support.v4.os.BuildCompat" on path: DexPathList[[zip file "/data/app/com.ryosoftware.calendareventsnotifier-1/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]
E/AndroidRuntime(17555): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
E/AndroidRuntime(17555): at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
E/AndroidRuntime(17555): at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
E/AndroidRuntime(17555): ... 18 more
E/AndroidRuntime(17555): Suppressed: java.lang.ClassNotFoundException: android.support.v4.os.BuildCompat
E/AndroidRuntime(17555): at java.lang.Class.classForName(Native Method)
E/AndroidRuntime(17555): at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
E/AndroidRuntime(17555): at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
E/AndroidRuntime(17555): at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
E/AndroidRuntime(17555): ... 19 more
E/AndroidRuntime(17555): Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available
Agregué dos clases en mi paquete java y funciona bien, mantenga ambas clases como se muestra en la imagen a continuación:
AsyncTaskCompat.java
public class AsyncTaskCompat {
/**
* Executes the task with the specified parameters, allowing multiple tasks to run in parallel
* on a pool of threads managed by {@link android.os.AsyncTask}.
*
* @param task The {@link android.os.AsyncTask} to execute.
* @param params The parameters of the task.
* @return the instance of AsyncTask.
*/
public static <Params, Progress, Result> AsyncTask<Params, Progress, Result> executeParallel(
AsyncTask<Params, Progress, Result> task, Params... params) {
if (task == null) {
throw new IllegalArgumentException("task can not be null");
}
if (Build.VERSION.SDK_INT >= 11) {
// From API 11 onwards, we need to manually select the THREAD_POOL_EXECUTOR
AsyncTaskCompatHoneycomb.executeParallel(task, params);
} else {
// Before API 11, all tasks were run in parallel
task.execute(params);
}
return task;
}
}
AsyncTaskCompatHoneycomb.java
class AsyncTaskCompatHoneycomb {
static <Params, Progress, Result> void executeParallel(
AsyncTask<Params, Progress, Result> task, Params... params) {
task.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, params);
}
}
En mi caso
- proyecto limpio
- invalidar y reiniciar
es trabajo
En mi caso, el error se debió al uso de toda la biblioteca gms: play-services. Algunos componentes de gms: play-services se refieren a versiones distintas a las especificadas explícitamente por usted.
Utilice solo los servicios de reproducción necesarios, por ejemplo: ''com.google.android.gms: play-services-analytics: 10.2.0'' en lugar de ''com.google.android.gms: play-services: 10.2.0'' .
Consulte también: Todas las bibliotecas com.android.support deben usar exactamente la misma especificación de versión
Buena lectura: https://blog.mindorks.com/avoiding-conflicts-in-android-gradle-dependencies-28e4200ca235
Está obteniendo NoClassDefFoundError & ClassNotFoundException
NoClassDefFoundError en Java se produce cuando Java Virtual Machine no puede encontrar una clase particular en tiempo de ejecución que estaba disponible en tiempo de compilación.
FYI
Estás usando Eclipse. Android Studio es una forma mucho más simple de desarrollar para Android si logras dominarlo. Para los desarrolladores que han estado usando Eclipse, migrar a Studio es una pesadilla para ellos. Eclipse está muerto (Mi opinión personal).
Para su problema
NoClassDefFoundError, vaya a la
opción de
reconstrucción
en
Project > Clean
y luego seleccione el proyecto que desea
limpiar.
Luego reinicie su Eclipse y vuelva a ejecutarlo.
Soluciones
Verifique que su classpath contenga ese jar (AppCompat), si su classpath no contiene el jar, simplemente agregue esa clase en su classpath.
Debe usar Android Studio en lugar de Eclipse . Leer
El identificador de dependencia del script de compilación de Gradle para esta biblioteca es el siguiente:
com.android.support:appcompat-v7:24.2.1
Luego,
Clean-Rebuild-Restart IDE
Otra razón fea para que esto se deba a esto es si está intentando adjuntar un depurador con punto de interrupción en algo que sucede durante la creación de la Actividad.
public class MApplication extends Application {
@Override
protected void attachBaseContext(Context paramContext) {
super.attachBaseContext(paramContext);
Helper.install(MApplication.this);
}
}
Aquí anulamos el método attachBaseContext () para agregar
Helper.install(MApplication.this);
línea de código
Nota: Dado que algunas de las clases de SDK ahora deben cargarse antes de usarlas, Helper.install () realiza el proceso de carga. El desarrollador necesita invocar este método antes de usar cualquier funcionalidad de SDK. De lo contrario, se producirán bloqueos inesperados. reference
A menos que la aplicación se bloquee con java.lang.NoClassDefFoundError: resolución fallida de: ....