it-swarm.com.de

java.lang.NoClassDefFoundError: com.google.firebase.FirebaseOptions

Ich habe diesen seltsamen Fehler in meiner Google-Entwicklerkonsole erhalten. Also habe ich Google Cloud Test Lab verwendet, um zu sehen, was wirklich passiert. meine App fällt auf fast allen Geräten aus

FATAL EXCEPTION: main
 Process: com.blackcurrantapps.iamin, PID: 16706
 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:1591)
    at Android.content.ContentProvider.attachInfo(ContentProvider.Java:1562)
    at com.google.firebase.provider.FirebaseInitProvider.attachInfo(Unknown Source)
    at Android.app.ActivityThread.installProvider(ActivityThread.Java:4871)
    at Android.app.ActivityThread.installContentProviders(ActivityThread.Java:4466)
    at Android.app.ActivityThread.handleBindApplication(ActivityThread.Java:4406)
    at Android.app.ActivityThread.access$1500(ActivityThread.Java:139)
    at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1270)
    at Android.os.Handler.dispatchMessage(Handler.Java:102)
    at Android.os.Looper.loop(Looper.Java:136)
    at Android.app.ActivityThread.main(ActivityThread.Java:5102)
    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:785)
    at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:601)
    at dalvik.system.NativeStart.main(Native Method)

Hier ist ein Screenshot des Tests .  enter image description here

Hier ist der lustige Teil, ich benutze Firebase überhaupt nicht in meiner App. Es gibt keinen Hinweis auf das Wort "Firebase", wenn ich in meiner gesamten Anwendung einen Pfad finde. Ich benutze jedoch Google Cloud-Dienste, Login und Google App Engine.

Hier ist meine build.gradle -Datei:

buildscript {
    repositories {
        maven { url 'https://maven.fabric.io/public' }
    }

    dependencies {
        classpath 'io.fabric.tools:gradle:1.+'
    }
}
apply plugin: 'com.Android.application'
apply plugin: 'io.fabric'
apply plugin: 'com.google.gms.google-services'

Android {
    compileSdkVersion 23
    buildToolsVersion '23.0.2'

    defaultConfig {
        applicationId "com.blackcurrantapps.iamin"
        minSdkVersion 16
        targetSdkVersion 23
        versionCode 11
        versionName "Fixed Check in Bug"
        multiDexEnabled = true
    }
    buildTypes {
        release {
            shrinkResources true
//            minifyEnabled true
//            proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
        }
    }
    packagingOptions {
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/NOTICE'
    }
    dexOptions {
        javaMaxHeapSize "4g"
    }
}
repositories {
    maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
    maven { url "https://oss.sonatype.org/content/groups/public/" }
    maven { url "https://jitpack.io" }
    maven { url 'https://maven.fabric.io/public' }
}

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

    compile('com.mikepenz:materialdrawer:[email protected]') {
        transitive = true
    }

    compile 'com.mikepenz:google-material-typeface:[email protected]' //Google Material Design Icons
    compile 'com.mikepenz:fontawesome-typeface:[email protected]'

    compile('com.vincentbrison.openlibraries.Android:dualcache:[email protected]') {
        transitive = true;
    }

    compile project(':htmlDialog')
    compile('com.Twitter.sdk.Android:Twitter:[email protected]') {
        transitive = true;
    }
    compile 'com.Android.support:palette-v7:23.4.0'
    compile 'com.Android.support:multidex:1.0.1'
    compile 'com.Android.support:appcompat-v7:23.4.0'
    compile 'com.Android.support:design:23.4.0'
    compile 'com.google.Android.gms:play-services-maps:9.0.0'
    compile 'com.google.Android.gms:play-services-gcm:9.0.0'
    compile 'com.google.Android.gms:play-services-identity:9.0.0'
    compile 'com.google.Android.gms:play-services-base:9.0.0'
    compile 'com.google.Android.gms:play-services-plus:9.0.0'
    compile 'com.google.Android.gms:play-services-analytics:9.0.0'
    compile 'com.google.Android.gms:play-services-location:9.0.0'
    compile 'com.Android.support:cardview-v7:23.4.0'
    compile 'com.rengwuxian.materialedittext:library:2.1.3'
    compile 'com.twotoasters.jazzylistview:library:1.2.1'
    compile 'com.twotoasters.jazzylistview:library-recyclerview:1.2.1'
    compile 'com.pnikosis:materialish-progress:1.7'
    compile 'com.getbase:floatingactionbutton:1.10.1'
    compile 'com.squareup.picasso:picasso:2.5.2'
    compile 'com.squareup.okhttp:okhttp:2.6.0'
    compile 'me.dm7.barcodescanner:zbar:1.8.3'
    compile 'net.glxn.qrgen:Android:2.0'
    compile 'com.edmodo:cropper:1.0.1'
    compile 'com.github.PhilJay:MPAndroidChart:v2.1.6'
    compile 'de.greenrobot:eventbus:2.4.0'
    compile 'com.Android.support:support-v4:23.4.0'
    compile 'com.pavelsikun:material-seekbar-preference:0.12.1+'

    compile project(path: ':backend', configuration: 'Android-endpoints')
}

Kann mir hier jemand helfen?

32
Sanket Berde

Vielen Dank, dass Sie die Frage Sanket gestellt haben. Ich bin der PM im Firebase Test Lab (früher Cloud Test Lab). Wollte Sie wissen lassen, dass dies ein Fehler an unserem Ende ist, der jetzt behoben werden sollte.

Es scheint, dass Ihre App derzeit die neuesten und besten Google Play-Dienste verwendet. Letzte Woche haben wir unsere Geräte aktualisiert, um sie verwenden zu können. Dann haben wir einen Fehler entdeckt, durch den wir auf eine ältere Version zurückgesetzt wurden. Im Moment haben wir die neuesten Play-Dienste auf unseren Geräten neu bereitgestellt, sodass ein erneutes Ausführen Ihrer Tests funktionieren sollte. Wenn nicht, lass es mich wissen und wir werden es prüfen und beheben.

18
Ahmed Mounir

Ich habe eine Lösung gefunden, die für mich funktioniert hat. Ich habe ganze Google Play Services 9.0.1-Bibliothek importiert. Die temporäre Problemumgehung besteht darin, nur die APIs zu importieren, die Ihre App tatsächlich benötigt. Die vollständige Liste der APIs finden Sie hier .

14
Swati Rawat

in meinem Fall: Verwenden Sie FCM und Google Map

//for FCM
compile 'com.google.firebase:firebase-messaging:9.4.0'
//for Map
compile 'com.google.Android.gms:play-services:9.4.0'

Ich habe behoben: Entfernt 

compile 'com.google.Android.gms:play-services:9.4.0'

und gebraucht

compile 'com.google.Android.gms:play-services-maps:9.4.0'
compile 'com.google.Android.gms:play-services-location:9.4.0'

Es hat gut funktioniert.

6
sonnv1368

Wenn dies anderen helfen kann, habe ich dies mit diesem Problem gelöst, obwohl dies nirgends mit Firebase verbunden ist, aber tatsächlich meinen Absturz gelöst hat

  1. Fügen Sie compile 'com.Android.support:multidex:1.0.1' zu app/build.gradle hinzu.

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

  3. Wenn Sie eine benutzerdefinierte Application-Klasse verwenden, überspringen Sie AndroidManifest.xml und lassen Sie Ihre Application-Klasse MultiDexApplication statt Application erweitern.

4
Devavrata

Sie müssen den com.google.firebase: firebase-ads: 9.0.2 AdMob Für Android-Abhängigkeiten verwenden.

compile 'com.google.firebase:firebase-ads:9.0.2'

und entferne deine

play-services (com.google.Android.gms: play-services:9.0.2)

Für mich geht das!

3
MMe

Sie würden folgendes Codeausschnitt versuchen:

defaultConfig { 
    multiDexEnabled true
}

dependencies {
    compile 'com.Android.support:multidex:1.0.0'
}

public class Controller extends Application {

 @Override
    protected void attachBaseContext(Context newBase)
 {
        super.attachBaseContext(newBase);
        MultiDex.install(this);
  } 
}
3
Suresh Sarak

Ich hoffe es ist nicht zu spät. Firebase hat Probleme verursacht, also habe ich es ausgeschlossen .. Ich habe es gerade in das Modul gradle eingefügt:

configurations {
    all*.exclude group: 'com.google.firebase', module: 'firebase-common'
}
2
klutch

Runterstufen Sie die Google Play-Service-Abhängigkeit auf compile 'com.google.Android.gms:play-services:8.3.0' und das Problem wird gelöst.

2
Amit Upadhyay

In Android 4.4 war die Lösung ähnlich ( https://stackoverflow.com/a/38707231/3377472 ):

- Ich habe eine Revision 33 der Google Play-Dienste

1) Konfigurieren Sie build.gradle und und Abhängigkeiten

Multidex-Unterstützung aktiviert und Bibliothek von Multidex hinzugefügt 

   Android {
        compileSdkVersion 23
        buildToolsVersion '23.0.3'
        defaultConfig {
            applicationId "packagename"
            minSdkVersion 14
            targetSdkVersion 23
            versionCode 1
            versionName "1.0"

            //------- Enabling multidex support----------.
            multiDexEnabled true
        }

        dexOptions {
            javaMaxHeapSize "3g"//use 3Gb of ram to launch Android 
        }

        buildTypes {
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
            }
        }
        productFlavors {
        }
    }


dependencies {

      compile 'com.Android.support:multidex:1.0.1' // 1.0.0

      // if you are using google maps
      compile 'com.google.Android.gms:play-services-maps:9.2.0'
      compile 'com.google.Android.gms:play-services-location:9.2.0'
}

2) Bearbeiten Sie das Manifest und fügen Sie diesen Android-Namen hinzu

<application
        Android:name="Android.support.multidex.MultiDexApplication"
        ...
        .....
        activity
             Android:name="packagename.Application"
             ....
             ...
       </activity>

3) Anwendungsklasse

-Meine Anwendungsklasse ist:

import Android.support.multidex.MultiDex;

public class Application extends AppCompatActivity {


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


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        //this is the solution 
        MultiDex.install(this);

        setContentView(R.layout.layout_example);
        ----
        ----
1
Jorge T

Es stellte sich heraus, dass meine Verwendung von MultiDex falsch war und dass dies zu diesem Fehler führt. __ Dies sollte eigentlich in der offiziellen Dokumentation erwähnt worden sein.


So machen Sie es richtig:

In Gradle.build (App-Ebene)

dependencies {
   compile 'com.Android.support:multidex:1.0.1'

Im Manifest Hinzufügen

<application
        Android:name=".Global"
...

In der Application-Klasse

public class Global extends MultiDexApplication {
...
}
1
Sanket Berde

Wenn Sie Google Play-Dienste verwenden, stellen Sie sicher, dass Sie den spezifischen Dienst hinzufügen. Zum Beispiel Bei Verwendung von Karten:

compile 'com.google.Android.gms:play-services-maps:x.x.x

anstatt 

 compile 'com.google.Android.gms:play-services:9.6.1'

Dadurch wird die Größe des Codes reduziert, und für die Kompilierung ist die Verwendung der "Multidex" -Funktion nicht erforderlich 

{
multiDexEnabled true
}

in Ihrem Code versuchen Sie es zu entfernen und unnötige Bibliotheksverweise 

0
Farina Ali

Nicht sicher, ob dies hilft, aber ich hatte das gleiche Problem mit Android SDK 19 und es hat mich verrückt gemacht. Ich benutze Firebase nicht (zumindest nicht absichtlich). Ich bin nicht sicher warum, aber der Fehler wurde beendet, wenn ich in der gradle config "minifyEnabled true" setze. 

Ich sehe, dass Sie Ihre Kommentare in Ihrem Releases - Bereich auskommentiert haben.

0
gregrobinz