Crash en tiempo de ejecución después de migrar a Android Studio (NoSuchMethodError)
Migré al estudio de Android, todo parecía estar bien hasta que traté de ejecutar la aplicación. Se quedó atascado en la actividad del lanzador y luego se estrelló, la impresión:
E/AndroidRuntime: FATAL EXCEPTION: main java.lang.NoSuchMethodError: No direct method <init>(ILjava/lang/String;)V in class Lcom/google/android/gms/common/api/Status; or its super classes (declaration of 'com.google.android.gms.common.api.Status' appears in /data/data/com.MY PACKAGE/files/instant-run/dex/slice-google-play-........b-classes.dex) at com.google.android.gms.measurement.zza.<init>(Unknown Source) at com.google.android.gms.measurement.zza.zzaR(Unknown Source) at com.google.android.gms.measurement.internal.zzn.zziJ(Unknown Source) at com.google.android.gms.measurement.internal.zzz.zza(Unknown Source) at com.google.android.gms.measurement.internal.zzw.<init>(Unknown Source) at com.google.android.gms.measurement.internal.zzaa.zzDj(Unknown Source) at com.google.android.gms.measurement.internal.zzw.zzaT(Unknown Source) at com.google.android.gms.measurement.AppMeasurementContentProvider.onCreate(Unknown Source) at android.content.ContentProvider.attachInfo(ContentProvider.java:1759) at android.content.ContentProvider.attachInfo(ContentProvider.java:1728) at android.app.ActivityThread.installProvider(ActivityThread.java:5534) at android.app.ActivityThread.installContentProviders(ActivityThread.java:5105) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5045) at android.app.ActivityThread.access$1600(ActivityThread.java:150) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1459) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:168) at android.app.ActivityThread.main(ActivityThread.java:5845) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:797) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:687)
- La aplicación Android falla sin ningún logcat ni ninguna excepción
- Mi aplicación funciona en android 2.3.3 a Android 3.1 pero se detiene con error en 4.0 +
- ¿Cómo desactivar la interacción con los vídeos html5 en webview o capturar correctamente sus excepciones?
- Dónde encontrar el historial de fallos de Android
- Se produjo un error en la aplicación firmada de Android. Trabajó antes de firmar
- La aplicación de Android se bloquea, pero no se reinicia - se reanuda desde otro punto de la aplicación
- Comprensión de bloqueos y ANR con Proguard habilitado
- Android: vista de la cámara: la aplicación se bloquea cuando no utilizo un método obsoleto
- Android.support.v4.app.Fragment.setUserVisibleHint puntero nulo en la reanudación de la aplicación
- Manejar "No mantener actividades" en la aplicación Android
- Crash: java.lang.NoClassDefFoundError: android.support.v7.appcompat.R $ layout
- Android comportamiento de la variable estática en la caída de la aplicación
- Reinicie la aplicación después de bloquear mediante programación - Android
Para mí fue el Problema, que las versiones de diferentes de mis dependencias de servicio de juego diferían, como
dependencies { compile 'com.google.android.gms:play-services-gcm:8.4.0' /different version compile 'com.google.android.gms:play-services-maps:9.0.2' compile 'com.google.android.gms:play-services-location:9.0.2' }
Debe cambiarse a
dependencies { compile 'com.google.android.gms:play-services-gcm:9.0.2' compile 'com.google.android.gms:play-services-maps:9.0.2' compile 'com.google.android.gms:play-services-location:9.0.2' }
Espero que funcione para usted o alguien corriendo en el mismo problema.
Agregue esta línea a su archivo de manifiesto
<application ... android:name="android.support.multidex.MultiDexApplication"> ... </application>
Y también añadir esto a su gradle
defaultConfig { ... minSdkVersion 14 targetSdkVersion 21 ... // Enabling multidex support. multiDexEnabled true }
Segunda solución:
Agregue esto al método onCreate () de su herramienta de lanzamiento
public void onCreate(Bundle arguments) { Context context = this.getInstrumentation().getTargetContext().getApplicationContext(); MultiDex.install(context ); super.onCreate(arguments); ... }
o
Necesario agregar esto en la clase que extiende la aplicación:
@Override protected void attachBaseContext(Context base) { super.attachBaseContext(base); MultiDex.install(this); }
Para más detalles: enlace 1 , enlace 2 , enlace 3 , enlace 4
Espero que funcione..
Para mí, tengo un fallo similar del método faltante, porque tuve que actualizar la versión de biblioteca recientemente agregada en mi archivo build.gradle
.
Añadir dependencias de servicios de Google Play
dependencies { compile 'com.google.android.gms:play-services:8.4.0'//update with latest version }
o esto,
compile 'com.google.android.gms:play-services-gcm:8.4.0'//update with latest version
Limpiar el proyecto y reconstruir
- Problemas con el teclado virtual
- La actividad de lanzamiento de acceso directo siempre lanza la actividad principal también