Haben Sie die Klasse "com.google.firebase.provider.FirebaseInitProvider" nicht gefunden?

156

Beim Start der App wird die folgende Ausnahme angezeigt.

java.lang.RuntimeException: Unable to get provider com.google.firebase.provider.FirebaseInitProvider: java.lang.ClassNotFoundException: Didn't find class "com.google.firebase.provider.FirebaseInitProvider" on path: DexPathList[[zip file "/data/app/com.vfirst.ifbagro-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.vfirst.ifbagro-1, /vendor/lib, /system/lib]]
at android.app.ActivityThread.installProvider(ActivityThread.java:4993)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:4596)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4536)
at android.app.ActivityThread.access$1300(ActivityThread.java:149)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1353)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5214)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:739)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:555)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.firebase.provider.FirebaseInitProvider" on path: DexPathList[[zip file "/data/app/com.vfirst.ifbagro-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.vfirst.ifbagro-1, /vendor/lib, /system/lib]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:53)
at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
at android.app.ActivityThread.installProvider(ActivityThread.java:4978)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:4596) 
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4536) 
at android.app.ActivityThread.access$1300(ActivityThread.java:149) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1353) 
at android.os.Handler.dispatchMessage(Handler.java:99) 
at android.os.Looper.loop(Looper.java:137) 
at android.app.ActivityThread.main(ActivityThread.java:5214) 
at java.lang.reflect.Method.invokeNative(Native Method) 

Hier ist das build.gradle auf App-Ebene

apply plugin: 'com.android.application'
apply plugin: 'android-apt' 

android {
compileSdkVersion 24
buildToolsVersion "24.0.1"

defaultConfig {
    applicationId "com.vfirst.ifbagro"
    minSdkVersion 17
    targetSdkVersion 24
    versionCode 1
    versionName "1.0"
    multiDexEnabled true
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
}

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


compile 'com.android.support:appcompat-v7:24.2.1'
compile 'com.android.support:design:24.2.1'
compile 'com.android.support:support-v4:24.2.1'
compile 'com.google.android.gms:play-services-gcm:9.4.0'
compile 'com.google.android.gms:play-services-location:9.4.0'
compile 'com.android.support:multidex:1.0.1'
compile 'com.google.firebase:firebase-messaging:9.4.0'
compile 'com.google.android.gms:play-services:9.4.0'
testCompile 'junit:junit:4.12'
}

apply plugin: 'com.google.gms.google-services'

Dies ist meine build.gradle auf Anwendungsebene

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
repositories {
    jcenter()
    mavenCentral()
}
dependencies {
    classpath 'com.android.tools.build:gradle:2.2.0'
    classpath 'com.google.gms:google-services:3.0.0'
    classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
    classpath 'com.google.gms:google-services:3.0.0'

    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
}
}

allprojects {
repositories {
    jcenter()
}
}

task clean(type: Delete) {
     delete rootProject.buildDir
}

Wie kann man das Problem lösen?

WUNSCH
quelle
Mögliches Duplikat von stackoverflow.com/questions/37312103/…
Jay Rathod RJ
Ich hatte all diese Antworten bereits ausprobiert. nichts
klappt
Es scheint ein Problem in Ihrem Manifest oder in google-services.json zu geben. Stellen Sie sicher, dass sie korrekt sind. Können Sie Ihre Manifestdatei veröffentlichen?
Rushi M Thakker
6
Haben Sie die für MultiDex erforderliche Manifeständerung vorgenommen : android:name="android.support.multidex.MultiDexApplication"? Wenn MultiDex korrekt konfiguriert ist, werden während der App-Initialisierung folgende Logcat-Meldungen angezeigt : I/MultiDex: install done.
Bob Snyder
Aktivieren Sie die Option Sofortige Ausführung, wenn ja, deaktivieren Sie die sofortige Ausführung.
Prathap Badavath

Antworten:

145

Ich hatte den gleichen Fehler und habe ihn mit MultiDex behoben, wie unter diesem Link beschrieben: https://developer.android.com/studio/build/multidex.html


Manchmal reicht es nicht aus, nur MultiDex zu aktivieren.

Wenn eine Klasse, die beim Start erforderlich ist, nicht in der primären DEX-Datei enthalten ist , stürzt Ihre App mit dem Fehler java.lang.NoClassDefFoundError ab . https://developer.android.com/studio/build/multidex#keep

FirebaseInitProvider ist beim Start erforderlich.

Daher müssen Sie FirebaseInitProvider manuell angeben, wie in der primären DEX-Datei erforderlich.

build.gradle-Datei

android {
    buildTypes {
        release {
            multiDexKeepFile file('multidex-config.txt')
            ...
        }
    }
}

multidex-config.txt (im selben Verzeichnis wie die Datei build.gradle)

com/google/firebase/provider/FirebaseInitProvider.class
Johanvs
quelle
1
Sie sind erstaunlich <3 vielen Dank, dass Sie meinen Tag gerettet haben <3
Mohamed Atef
24
Hey, diese Ausnahme: Auslöser: java.lang.ClassNotFoundException: Die Klasse "com.google.firebase.provider.FirebaseInitProvider" wurde nicht gefunden. Sie hat nichts mit der Aktivierung von Multidex zu tun. Wenn Sie die Fragen build.gradle sehen multiDexEnabled ist aktiviert!
Jorgesys
3
Nein, dieser Fehler stammt von Multidex. Er hat einfach nicht alle Schritte ausgeführt, da Sie sein Manifest oder seine Hauptklasse nicht sehen können.
AMAN77
3
Das hat funktioniert. Ich hatte Multidex in meiner Gradle-Datei aktiviert, aber es fehlte der Android Manifest-Teil!
Krikara
3
Stellen Sie außerdem sicher, dass sich Ihre ApplicationKlasse von erstreckt MultiDexApplication(). Dies fehlte in meinem Fall.
Nelson Almendra
86

Auch ich hatte das gleiche Problem und löste es schließlich durch Deaktivieren Instant Runin einem Android-Studio.

Einstellungen → Erstellen, Ausführen, Bereitstellen → Sofortausführung und deaktivieren Sie Sofortausführung aktivieren

Aktualisieren:

In den neuesten Versionen von Android Studio 3.5+ ist keine Sofortausführungsoption verfügbar. Es sollte nur für ältere Versionen gelten.

Shylendra Madda
quelle
8
Auch für mich. Dies war die Ursache des Problems - nicht Multidex oder eine der anderen Antworten.
user3562927
3
Dies scheint ein Problem mit Android Studio 2.3 zu sein. Das Deaktivieren des Sofortlaufs hat auch bei mir funktioniert, aber dies ist nicht die ideale Lösung :(
Tharaka Devinda
1
Ich habe zwei Projekte von einer anderen Firma geerbt. Die Codebasis-, Manifest- und Gradle-Konfigurationen sind für einige kleinere Elemente praktisch gleich. Ein Projekt baut und läuft gut, das andere nicht. Instant Run ausgeschaltet und beide laufen jetzt. Seltsam. Dies verwendet Android Studio. 2.3.
Joeblow23
3
Ich hatte genau das gleiche Problem mit AS 3.1 und einem Emulator, auf dem API 26 ausgeführt wird. Bevor ich keine Probleme mit den APIs 19-25 hatte. Wenn ich Instant Run deaktiviere, kann ich die App ausführen. Vielen Dank.
Marcin Jedynak
1
Das Deaktivieren von Instant Run löst dieses Problem für mich nicht.
Alyoshak
49

Fügen Sie in der Datei build.gradle (Module: app) den folgenden Code in defaultConfig ein:

  defaultConfig {
        applicationId "com.***.****"
minSdkVersion 15
        targetSdkVersion 25
        versionCode 1
        versionName "1.0"
        multiDexEnabled true
    }

und in Abhängigkeiten einfügen:

implementation 'com.android.support:multidex:2.0.1'

Fügen Sie dann Code zum Manifest hinzu:

<application 
    android:name="android.support.multidex.MultiDexApplication"
CodeArt
quelle
1
Ich versuche es, wenn es funktionieren wird, werde ich abstimmen und kommentieren
Kamil Ibadov
45

Ich hatte das gleiche Problem in meinem (YouTube-Player-Projekt) ... und Folgendes löste das Problem für mich:

  1. Fügen Sie diesen Code in Ihr build.gradle(Modul: App) ein defaultConfing:

    defaultConfig {
        ....
        ....
        multiDexEnabled = true
    }
    
  2. Fügen Sie diesen Code in Ihr build.gradle(Modul: App) ein dependencies:

    dependencies {
        compile 'com.android.support:multidex:1.0.1'
        .....
        .....
    }
    
  3. Offen AndroidManifest.xmlund innen application:

    <application
        android:name="android.support.multidex.MultiDexApplication"
        .....
        .....
    </application>
    

    oder wenn Sie Ihre App-Klasse haben, erweitern Sie sie von MultiDexApplication wie folgt:

    public class MyApp extends MultiDexApplication {
    .....
    

Und schließlich sollten Sie das Android Support Repository in den Extras im SDK Manager herunterladen .

Firas Hashash
quelle
1
Ich habe "MultiDex.install (this);" aber es hat nicht funktioniert. Das Erweitern der Anwendungsklasse mit MultiDexApplication hat den Trick getan.
Sicherer
33

Überschreiben Sie einfach die folgende Methode in Ihrer Anwendungsklasse.

public class YourApplication extends Application {

    @Override
    protected void attachBaseContext(Context context) {
        super.attachBaseContext(context);
        MultiDex.install(this);
    }
    @Override
    public void onCreate() {
        super.onCreate();
        Realm.init(this); //initialize other plugins 

    }
}
SilverSky
quelle
plus eins, weil er nicht auf das android:nameZeug im Manifest
hereinfällt
Die einfachste und beste Antwort
kader kabore
Wenn Sie eine benutzerdefinierte Anwendungsklasse verwenden, ist dies die Antwort. Andere Antworten beheben das Problem nicht.
Makkhay Gurung
25

Wenn Ihre App und die Bibliotheken, auf die sie verweist, 65.536 Methoden überschreiten, tritt ein Buildfehler auf, der darauf hinweist, dass Ihre App die Grenze der Android-Buildarchitektur erreicht hat

Um diese Einschränkung zu vermeiden, müssen Sie Ihre App für Multidex konfigurieren

Wenn Ihre minSdkVersion auf 21 oder höher festgelegt ist, müssen Sie multiDexEnabled in Ihrer build.gradle-Datei auf Modulebene nur auf true setzen, wie hier gezeigt:

android {
    defaultConfig {
        ...
        minSdkVersion 21 
        multiDexEnabled true
    }
    ...   
}

Else , wenn Ihr minSdkVersion auf 20 oder weniger eingestellt ist, dann müssen Sie die multidex Support - Bibliothek verwenden , wie folgt:

1. Ändern Sie die build.gradle-Datei auf Modulebene, um Multidex zu aktivieren, und fügen Sie die Multidex-Bibliothek als Abhängigkeit hinzu, wie hier gezeigt:

android {
    defaultConfig {
        ...
        minSdkVersion 15 
        multiDexEnabled true
    }
    ...
 }

dependencies {
        implementation 'com.android.support:multidex:1.0.3'
}

2. Führen Sie je nachdem, ob Sie die Anwendungsklasse überschreiben, einen der folgenden Schritte aus:

  • Wenn Sie die Anwendungsklasse nicht überschreiben, bearbeiten Sie Ihre Manifestdatei, um android: name im Tag wie folgt festzulegen:

    <application
        android:name="android.support.multidex.MultiDexApplication" >
        ...
    </application>
  • Andernfalls Wenn Sie die Anwendungsklasse überschreiben, ändern Sie sie, um MultiDexApplication (falls möglich) wie folgt zu erweitern:

   public class MyApplication extends MultiDexApplication { ... }
  • Andernfalls überschreiben Sie die Anwendungsklasse, aber es ist nicht möglich, die Basisklasse zu ändern. Sie können stattdessen die Methode attachBaseContext () überschreiben und MultiDex.install (this) aufrufen, um Multidex zu aktivieren:

   public class MyApplication extends SomeOtherApplication {
     @Override
     protected void attachBaseContext(Context base) {
        super.attachBaseContext(base);
        MultiDex.install(this);
     }
   }
Sokmean Pon
quelle
Warum muss die Anwendung MultiDexApplication erweitern?
Jason
1
MultiDexApplication ist eine unterstützende Bibliotheksklasse. Es implementiert die Anwendungsklasse und überschreibt einen Methodennamen attachBaseContext, um den Job für die MultiDex-Registrierung auszuführen. Sie müssen diese Klasse nicht erweitern, wenn Sie die Methode attachBaseContext überschreiben.
Sokmean Pon
1
Dies hat es für mich im Jahr 2019 mit React Native behoben, aber es fehlen 2 Importe in MainApplication.java: import android.content.Context;undimport android.support.multidex.MultiDex;
xaphod
1
Ihre Antwort hat mir geholfen, meine App wieder kompatibel zu machen.
Alok Vishwakarma
18

Aktivieren multidexist keine gute Lösung, da multidexeine andere Verwendung in Android diese Antwort ist, was Multidex ist

Die Lösung ist das Deaktivieren des Sofortlaufs, wie @Shylendra Madda sagte

Einstellungen → Erstellen, Ausführen, Bereitstellen → Sofortausführung und deaktivieren Sie Sofortausführung aktivieren

Ich denke, der Grund für dieses Problem ist, wenn Android Instant Run aktiviert ist. Android Studio setzt keine Bibliotheken wie firebasein generierte apk ein, um die Projekterstellungszeit zu verkürzen, da firebase Bibliotheken und andere Bibliotheken wie mapsund andere in Wiedergabediensten vorhanden sind und Wiedergabedienste installiert sind auf Android-Gerät also, wenn Instant Run aktiviert ist, müssen Sie sie nicht in generierte apk setzen, um die Build-Zeit zu beschleunigen.

Wenn Sie apk extrahieren und auf einem anderen Gerät installieren, wird diese Ausnahme angezeigt

Edalat Feizi
quelle
1
Dies ist die perfekte Lösung
Ghanshyam Bagul
Das Deaktivieren von Instant Run löst das Problem für mich nicht.
Aljoschak
In Android Studio 3.5.1 gibt es im Abschnitt Erstellen, Ausführen, Bereitstellen kein Element für die sofortige Ausführung.
Vergiliy
@Vergiliy Sie haben es durch Änderungen zum Anwenden ersetzt. Weitere Informationen finden Sie im Release-Blog-Beitrag android-developers.googleblog.com/2019/08/… und in den Dokumenten Developer.android.com/studio/run#apply-changes für weitere Informationen zum Anwenden Änderungen
Edalat Feizi
14

Ich habe auch das gleiche Problem, nachdem ich alle Lösungen ausprobiert habe. Ich habe die folgende Lösung gefunden.

Wenn Sie Proguard-Regeln angewendet haben, fügen Sie die folgende Zeile in ProGuard-Regeln hinzu

-keep class com.google.firebase.provider.FirebaseInitProvider

und es löst mein Problem.

Gunavant Patel
quelle
@gunavant Patel Bro bitte sagen Sie mir, wie man in Proguard bitte hinzufügen
Gowthaman M
1
@gunavant Patel Ich denke, dies wird mein Problem gelöst ... können Sie bitte Beispielcode posten, wo diese Zeile zu halten-keep class com.google.firebase.provider.FirebaseInitProvider
Gowthaman M
@GowthamanM Überprüfen Sie zunächst, ob Sie Proguard in der Datei app / build.gradle aktivieren. Wenn aktiviert, finden Sie die Datei proguard-rules in app / proguard-rules.pro in dieser Datei, die über der Zeile hinzugefügt wurde. Wenn Sie Proguard nicht aktivieren, werden Sie nicht unterstützt.
Gunavant Patel
buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } }Wie zu aktivieren, sagen Sie mir bitte Sir
Gowthaman M
Wenn Sie Proguard nicht aktiviert haben, ist das Problem anders. aber ich zeige Ihnen, wie Sie das ermöglichen. Fügen Sie in der Version "minifyEnabled true" hinzu, oder wenn Sie das Debuggen aktivieren möchten, fügen Sie auch den Debug-Typ hinzu.
Gunavant Patel
8

1: Gehen Sie zu gradle enable multiDexEnabled und fügen Sie die Multidex-Bibliothek in den Abhängigkeiten hinzu.

android {
   ...
   defaultConfig {
      multiDexEnabled true
      ...
   }
}

dependencies {
  // add dependency 
  implementation 'com.android.support:multidex:1.0.1'
}

2: Gehen Sie zur Manifest-Datei und schreiben Sie android: name = ". MyApplication" (Klassenname (MyApplication) ist optional, Sie können schreiben, was Sie wollen).

    <application
        android:name=".MyApplication"
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        .
        .
        .
        .
        .
    </application>

3: Wie Sie geschrieben haben android: name = ". MyApplication" Inside Application at Manifest-Datei. Es wird eine Fehlermeldung angezeigt, da Sie keine MyApplication-Klasse erstellt haben. MyApplication-Klasse erstellen Erweitern Sie sie um die Klasse "application" oder klicken Sie einfach auf. MyApplication, eine kleine rote Sprechblase wird auf der linken Seite einer Syntax angezeigt. Klicken Sie darauf. Sie sehen (MyApplication-Klasse erstellen) im Menü, klicken darauf und schließen ein unten Methode Innerhalb dieser Klasse.

    public class MyApplication extends Application {

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

Wenn Sie weitere Informationen erhalten möchten, klicken Sie auf diesen Link: [ https://developer.android.com/studio/build/multidex.html]

Hoffentlich funktioniert es für Sie.

Shahzad Afridi
quelle
7

Fügen Sie zunächst Folgendes in build.gradle (Modul: App) ein ---->

defaultConfig{
..
multiDexEnabled true
..
}

Fügen Sie dann in derselben Datei Folgendes hinzu

dependencies{
...
compile 'com.android.support:multidex:1.0.1'
...
}

Dann schreiben Sie in AndroidManifest.xml Folgendes

<application
    android:name="android.support.multidex.MultiDexApplication"
    .....
    .....
</application>

Das ist es. Es wird definitiv funktionieren

Hirak JD
quelle
6

Wenn Sie MultiDex in Ihrem App Gradle verwenden, ändern Sie die Option zum Erweitern der Anwendung, um die MultiDexApplication in Ihrer Anwendungsklasse zu erweitern. Es wird trotzig funktionieren

Suresh Kumar
quelle
4

Ich hatte das gleiche Problem und löste es einfach, indem ich einen Teil des Codes hinzufügte. Wenn dieses Problem auftritt, haben Sie bereits alle Schritte ausgeführt, die zur Verwendung von Firebase erforderlich sind. Sie müssen nur eine Klasse erstellen, die die Anwendung erweitert (öffentliche Klasse Application_CrashReport erweitert Application) und diese Klasse in die Hauptmanifestdatei einfügen. In dieser Klasse überschreiben Sie einfach die folgende Methode

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

und fügen Sie MultiDex.install (this) hinzu; in dieser Methode bedeutet

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

Hinweis : - Vergessen Sie nicht, die obigen Schritte auszuführen

Peter
quelle
2

Dies liegt an MultiDex.

Zu lösende Schritte:

  1. In gradle-> Abhängigkeiten -> (compile'com.android.support: multidex: 1.0.1 ') Fügen Sie dies in Abhängigkeiten hinzu

  2. In Ihrer Projektanwendungsklasse wird MultiDexApplication wie folgt erweitert (öffentliche Klasse MyApplication erweitert MultiDexApplication)

  3. Ausführen und überprüfen

Sukhdeep Saini
quelle
2

Dies ist ein bisschen spät für diejenigen, die hereinkommen, aber überprüfen Sie Ihre Proguard-Regeln! Ich habe viel Zeit damit verschwendet. Ihre Proguard-Regeln könnten darin bestehen, die Namen in wichtige Firebase-Dateien zu ändern. Dies ist wirklich nur ein Problem in der Produktion und im Sofortlauf :)

proguard-rules.pro

-keep class com.google.firebase.** { *; }
-keep class com.firebase.** { *; }
-keep class org.apache.** { *; }
-keepnames class com.fasterxml.jackson.** { *; }
-keepnames class javax.servlet.** { *; }
-keepnames class org.ietf.jgss.** { *; }
-dontwarn org.apache.**
-dontwarn org.w3c.dom.**
Keith Aylwin
quelle
Dies hat den Trick getan, Multidex zu aktivieren, hat nichts als Zeitverschwendung!
Magnus W
2

Wie bereits erwähnt, ist dies ein Problem mit multidex: Sie sollten Ihrem build.gradleund eine Implementierung hinzufügen MainApplication.java. Aber was Sie hinzufügen, hängt wirklich davon ab, ob Sie AndroidX unterstützen oder nicht. Folgendes benötigen Sie, um dieses Problem zu lösen:

  1. Wenn Sie AndroidX unterstützen

build.gradleFügen Sie diese Codezeilen in Ihr (android / app / build.gradle) ein:

defaultConfig {
  applicationId "com.your.application"
  versionCode 1
  versionName "1.0"
  ...
  multiDexEnabled true // <-- THIS LINE
}
...
...
dependencies {
  ...
  implementation "androidx.multidex:multidex:2.0.1" // <-- THIS LINE
  ...
}

MainApplication.javaFügen Sie diese Zeilen in Ihr (android / app / src / main / java /.../ MainApplication.java) ein:

package com.your.package;

import androidx.multidex.MultiDexApplication; // <-- THIS LINE
...
...
public class MainApplication extends MultiDexApplication { ... } // <-- THIS LINE
  1. Wenn Sie AndroidX nicht unterstützen

build.gradleFügen Sie diese Codezeilen in Ihr (android / app / build.gradle) ein:

defaultConfig {
  applicationId "com.your.application"
  versionCode 1
  versionName "1.0"
  ...
  multiDexEnabled true // <-- THIS LINE
}
...
...
dependencies {
  ...
  implementation "com.android.support:multidex:1.0.3" // <-- THIS LINE
  ...
}

MainApplication.javaFügen Sie diese Zeilen in Ihr (android / app / src / main / java /.../ MainApplication.java) ein:

package com.your.package;

import android.support.multidex.MultiDex;; // <-- THIS LINE
...
...
public class MainApplication extends MultiDexApplication { ... } // <-- THIS LINE
E. Dn
quelle
1

Sie sollten Ihre Anwendungsklasse mit MultiDexApplicationanstelle von erweitern Application.

Ali Akram
quelle
0

Dieses Problem trat auf, als ich mit dem Android Gradle Plugin 3.4.0 zu Android Studio 3.4 wechselte. Das funktioniert mit dem R8-Compiler.

Das Android Gradle-Plugin enthält zusätzliche vordefinierte ProGuard- Regeldateien. Es wird jedoch empfohlen, proguard-android-optimize.txt zu verwenden . Mehr Infos hier .

buildTypes {
    release {
        minifyEnabled true
        proguardFiles getDefaultProguardFile(
          'proguard-android-optimize.txt'),
          // List additional ProGuard rules for the given build type here. By default,
          // Android Studio creates and includes an empty rules file for you (located
          // at the root directory of each module).
          'proguard-rules.pro'
    }
}
Levon Petrosyan
quelle
0

Ich hatte das gleiche Problem und habe dieses Problem gelöst, indem ich die fireabseStorage-Version genauso geändert habe wie die Firebase-Datenbankversion

 implementation 'com.google.firebase:firebase-core:16.0.8'
 implementation 'com.google.firebase:firebase-database:16.0.1'
 implementation 'com.google.firebase:firebase-storage:17.0.0'

zu

 implementation 'com.google.firebase:firebase-core:16.0.8'
 implementation 'com.google.firebase:firebase-database:16.0.1'
 implementation 'com.google.firebase:firebase-storage:16.0.1'
Umer Waqas
quelle
0

Wenn Sie> 20 minsdkversion haben, müssen Sie die neueste Firebase Auth-Version verwenden, d. H.

Implementierung 'com.google.firebase: firebase-auth: 18.1.0'

und Sie müssen kein Multi-Dex einrichten, wenn Sie es nicht wirklich benötigen.

Ich bin auf dieses Problem gestoßen, als ich 16.0.5 vom Firebase-Helfer verwendet habe, konnte es jedoch beheben, als ich auf 18.1.0 aktualisiert habe.

Silberner Pfeil
quelle
-6

Fügen Sie im Projektstammpfad google-services.json hinzu

dependencies {
compile 'com.android.support:support-v4:25.0.1'
**compile 'com.google.firebase:firebase-ads:9.0.2'**
compile files('libs/StartAppInApp-3.5.0.jar')
compile 'com.android.support:multidex:1.0.1'
  }
apply plugin: 'com.google.gms.google-services'
Muhammad Azeem
quelle
Erwägen Sie, einige Informationen zu Ihrer Antwort hinzuzufügen, und dieser Code wird niemandem helfen
Ashu Kumar