wake-up-neo.com

NoClassDefFoundError: com.google.firebase.FirebaseOptions

Ich bekomme immer wieder die NoClassDefFoundError auf einem anderen Testgerät (4.4.2), das ich verwende. Funktioniert aber gut auf meinem Testgerät (Android 5.1).

Ich habe die Lösungen ausprobiert, die ich gegoogelt habe und nichts scheint zu funktionieren.

Ich verwende die Firebase-Echtzeitdatenbank. Kann jemand bitte helfen?

Hier ist das Fehlerprotokoll:

06-03 01:36:29.607 2655-2655/mobapps.mypersonal.biz.grouptracker E/dalvikvm: Could not find class 'com.google.firebase.FirebaseOptions', referenced from method com.google.firebase.FirebaseApp.<init> 06-03 01:36:29.617 2655-2655/mobapps.mypersonal.biz.grouptracker E/dalvikvm: Could not find class 'com.google.firebase.FirebaseApp$zzb', referenced from method com.google.firebase.FirebaseApp.zzaJ 06-03 01:36:29.621 2655-2655/mobapps.mypersonal.biz.grouptracker E/dalvikvm: Could not find class 'com.google.firebase.FirebaseApiNotAvailableException', referenced from method com.google.firebase.FirebaseApp.getToken 06-03 01:36:29.629 2655-2655/mobapps.mypersonal.biz.grouptracker E/dalvikvm: Could not find class 'com.google.firebase.FirebaseApp$zza', referenced from method com.google.firebase.FirebaseApp.zza 06-03 01:36:29.639 2655-2655/mobapps.mypersonal.biz.grouptracker E/AndroidRuntime: FATAL EXCEPTION: main
    Process: mobapps.mypersonal.biz.grouptracker, PID: 2655
    Java.lang.NoClassDefFoundError: com.google.firebase.FirebaseOptions
        at com.google.firebase.FirebaseApp.zzbu(Unknown Source)
        at com.google.firebase.provider.FirebaseInitProvider.onCreate(Unknown Source)
        at Android.content.ContentProvider.attachInfo(ContentProvider.Java:1656)
        at Android.content.ContentProvider.attachInfo(ContentProvider.Java:1627)
        at com.google.firebase.provider.FirebaseInitProvider.attachInfo(Unknown Source)
        at Android.app.ActivityThread.installProvider(ActivityThread.Java:5079)
        at Android.app.ActivityThread.installContentProviders(ActivityThread.Java:4653)
        at Android.app.ActivityThread.handleBindApplication(ActivityThread.Java:4593)
        at Android.app.ActivityThread.access$1500(ActivityThread.Java:151)
        at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1402)
        at Android.os.Handler.dispatchMessage(Handler.Java:110)
        at Android.os.Looper.loop(Looper.Java:193)
        at Android.app.ActivityThread.main(ActivityThread.Java:5363)
        at Java.lang.reflect.Method.invokeNative(Native Method)
        at Java.lang.reflect.Method.invoke(Method.Java:515)
        at com.Android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.Java:828)
        at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:644)
        at dalvik.system.NativeStart.main(Native Method)
10
sirking1991

Dies hat das Problem für mich gelöst:

  1. Fügen Sie compile 'com.Android.support:multidex:1.0.2' zuapp/build.gradle hinzu.

  2. Fügen Sie Android: name = "Android.support.multidex.MultiDexApplication" zum Anwendungs-Tag in AndroidManifest.xml hinzu.

    Wenn Sie eine benutzerdefinierte Application-Klasse verwenden, überspringen Sie die AndroidManifest.xml-Datei und lassen Sie Ihre Application-Klasse MultiDexApplication anstelle von Application erweitern.

14
Minas Mina

Dieser Fehler wird mit neueren Versionen gemeldet, die meistens in der Nähe von Revision 28,29 und in neueren Play-Dienstversionen behoben wurden. Wenn Sie also dieses Problem haben, stellen Sie sicher, dass Sie die Version des Google Play-Dienstes in Ihrem Android-Studio aktualisiert haben. wie es ältere Versionen haben. So aktualisieren Sie die Play-Services-Version ..

Folge diesen Schritten:

  1. Wechseln Sie zum Android SDK Manager
  2. Gehen Sie zu Extra hier, finden Sie wie in der Abbildung unten gezeigt, aktualisieren Sie es auf die neueste Version und versuchen Sie, das Projekt auszuführen.

 enter image description here

Wenn dann Sie verwenden MultiDex in Ihrer Anwendung, stellen Sie sicher, dass Sie dies richtig gemacht haben.

In Ihrer App-Ebene Build.Gradle -Datei verwenden Sie diesen Code multiDexEnabled true

 defaultConfig {
        applicationId "com.reversebits.tapanhp.saffer"
        minSdkVersion 17
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
        multiDexEnabled true
    }

MultiDex-Abhängigkeit übernehmen in dependencies in derselben Datei.

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])

    testCompile 'junit:junit:4.12'

    compile 'com.google.Android.gms:play-services:9.4.0'
    compile 'com.Android.support:multidex:1.0.1'
}

Stellen Sie dann in Ihrer AndroidMenifest.xml -Datei sicher, dass Application-Tag den Namen MultiDexApplication hat.

<application
        Android:name="Android.support.multidex.MultiDexApplication"
        Android:allowBackup="true">

Hinweis

wenn Sie über eine eigene Application-Klasse verfügen und Sie diese in Ihrer Menifestdatei verwenden, können Sie multidex in Ihrer Application-Klasse initialisieren wie folgt

public class AppClass extends Application {

    //this will initialize multidex in your own Application class
    @Override
    protected void attachBaseContext(Context base) {
        super.attachBaseContext(base);
        MultiDex.install(this);
    }

}
2
TapanHP

Dank an TapanHP oben habe ich das für mich schnell zum Laufen gebracht: 

Kurze Antwort:

Ich hatte multiDexEnabled= true in meine app/build.gradle-Datei gesetzt und dies lief gut auf Android 5.x.x, aber jedes Testgerät mit 4.x.x (Kit Kat) würde einen kritischen Fehler auslösen "Leider hat IhrAppName aufgehört."

Debugger zeigte: 

Could not find class 'com.google.firebase.FirebaseOptions' ....

Hinweis: Ich habe auch eine benutzerdefinierte Klasse, die Application erweitert.

Meine Lösung: Der benutzerdefinierten Klasse wurde der folgende Code hinzugefügt

import Android.support.multidex.MultiDex;
public class YourCustomApplication extends Application {

    @Override
    protected void attachBaseContext(Context base) {
        super.attachBaseContext(base);
        MultiDex.install(this);
    }

...
} 

Kein kritischer Absturz mehr.

1
ritchie.a

Ich habe das gleiche Problem, mit diesem habe ich gelöst:

https://stackoverflow.com/a/37364044

Sie müssen Android:name=".app" durch Android:name="Android.support.multidex.MultiDexApplication" ersetzen.

0
Lyon