Nie znalazłeś klasy „com.google.firebase.provider.FirebaseInitProvider”?

156

Podczas uruchamiania aplikacji pojawia się poniższy wyjątek.

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) 

Oto build.gradle na poziomie aplikacji

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'

To jest build.gradle na poziomie mojej aplikacji

// 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
}

Jak rozwiązać ten problem?

ŻYCZĘ
źródło
Możliwy duplikat stackoverflow.com/questions/37312103/ ...
Jay Rathod RJ
Wypróbowałem już wszystkie te odpowiedzi. nic nie wychodzi
WISHY
Wygląda na to, że wystąpił problem z Twoim manifestem lub plikiem google-services.json. Upewnij się, że są poprawne. Czy możesz opublikować swój plik manifestu?
Rushi M Thakker
6
Czy dokonać oczywistego zmiany potrzebne dla MultiDex: android:name="android.support.multidex.MultiDexApplication"? Jeśli MultiDex jest poprawnie skonfigurowany widać wiadomości logcat podczas aplikacji Init jak ten: I/MultiDex: install done.
Bob Snyder
zaznacz opcję natychmiastowego uruchamiania, jeśli tak, wyłącz natychmiastowe uruchamianie.
Prathap Badavath

Odpowiedzi:

145

Miałem ten sam błąd i rozwiązałem go z MultiDexem, jak opisano pod tym linkiem: https://developer.android.com/studio/build/multidex.html


Czasami samo włączenie funkcji MultiDex nie wystarczy.

Jeśli jakakolwiek klasa wymagana podczas uruchamiania nie jest dostarczona w podstawowym pliku DEX , aplikacja ulega awarii z błędem java.lang.NoClassDefFoundError . https://developer.android.com/studio/build/multidex#keep

Podczas uruchamiania wymagany jest FirebaseInitProvider .

Musisz więc ręcznie określić FirebaseInitProvider zgodnie z wymaganiami w głównym pliku DEX.

plik build.gradle

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

multidex-config.txt (w tym samym katalogu, co plik build.gradle)

com/google/firebase/provider/FirebaseInitProvider.class
johanvs
źródło
1
jesteś niesamowity <3 wielkie dzięki, że uratowałeś mi dzień <3
Mohamed Atef
24
Hej, ten wyjątek: spowodowany przez: java.lang.ClassNotFoundException: Nie znaleziono klasy „com.google.firebase.provider.FirebaseInitProvider” nie ma nic wspólnego z włączaniem multidex, w rzeczywistości, jeśli widzisz pytania build.gradle multiDexEnabled jest włączony!
Jorgesys
3
Nie, ten błąd pochodzi z firmy Multidex, po prostu nie wykonał wszystkich kroków, ponieważ nie możesz zobaczyć jego manifestu ani jego głównej klasy.
AMAN77
3
To zadziałało. Miałem włączoną funkcję multidex w moim pliku gradle, ale brakowało mi części manifestu Androida!
krikara
3
Upewnij się również, że Twoja Applicationklasa rozciąga się od MultiDexApplication(). Tego brakowało w moim przypadku.
Nelson Almendra
86

Ja też stanąłem przed tym samym problemem i ostatecznie rozwiązałem go, wyłączając Instant Runw Android Studio.

Ustawienia → Kompilacja, Wykonanie, Wdrożenie → Natychmiastowe uruchamianie i odznacz opcję Włącz natychmiastowe uruchamianie

Aktualizacja:

W najnowszym Android Studio 3.5+ nie ma opcji natychmiastowego uruchamiania. Powinien mieć zastosowanie tylko do starszych wersji.

Shylendra Madda
źródło
8
Dla mnie to samo. To była przyczyna problemu - nie multidex ani żadna z innych odpowiedzi.
user3562927
3
Wygląda na to, że jest to problem z Android Studio 2.3. Wyłączenie natychmiastowego uruchamiania również zadziałało, ale nie jest to idealne rozwiązanie :(
Tharaka Devinda
1
Odziedziczyłem dwa projekty z innej firmy. Podstawy kodu, konfiguracje manifestu i gradle są praktycznie takie same, jakich można się spodziewać w przypadku kilku mniejszych elementów. Jeden projekt buduje się i działa dobrze, a drugi nie. Wyłączyłem natychmiastowy bieg i oboje działają teraz. Dziwne. Używa Android Studio. 2.3.
joeblow23
3
Napotkałem ten sam problem z AS 3.1 i emulatorem z API 26. Wcześniej nie napotkałem żadnych problemów z API 19-25. Wyłączenie natychmiastowego uruchamiania rzeczywiście pozwoliło mi uruchomić aplikację. Dzięki.
Marcin Jedynak
1
Wyłączenie funkcji Instant Run nie rozwiązuje tego problemu.
Alyoshak,
49

W pliku build.gradle (Module: app) wstaw poniższy kod do defaultConfig:

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

i wstaw do zależności:

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

Następnie dodaj kod do manifestu:

<application 
    android:name="android.support.multidex.MultiDexApplication"
Kod Art
źródło
1
Próbuję, jeśli to zadziała, głosuję i komentuję
Kamil Ibadov
45

Miałem ten sam problem w moim (projekcie odtwarzacza YouTube) ... a poniższe rozwiązały problem za mnie:

  1. Dodaj ten kod do swojego build.gradle(module: app) wewnątrz defaultConfing:

    defaultConfig {
        ....
        ....
        multiDexEnabled = true
    }
    
  2. Dodaj ten kod do swojego build.gradle(module: app) wewnątrz dependencies:

    dependencies {
        compile 'com.android.support:multidex:1.0.1'
        .....
        .....
    }
    
  3. Otwarte AndroidManifest.xmli wewnątrz application:

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

    lub jeśli masz klasę aplikacji, rozszerz ją z MultiDexApplication na przykład:

    public class MyApp extends MultiDexApplication {
    .....
    

I wreszcie, myślę, że powinieneś pobrać repozytorium pomocy technicznej Androida , w dodatkach w Menedżerze SDK .

Firas Hashash
źródło
1
Zrobiłem „MultiDex.install (this)”; ale to nie zadziałało. Rozszerzenie klasy aplikacji za pomocą MultiDexApplication załatwiło sprawę.
Bezpieczniejszy
33

Po prostu zastąp następującą metodę w klasie aplikacji.

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
źródło
plus jeden za to, że nie android:name
dałem się nabrać
Najprostsza i najlepsza odpowiedź
kader kabore
Jeśli używasz niestandardowej klasy Application, to jest odpowiedź. Inne odpowiedzi nie rozwiążą problemu.
makkhay gurung
25

Gdy aplikacja i biblioteki, do których się odwołuje, przekraczają 65 536 metod, pojawia się błąd kompilacji wskazujący, że aplikacja osiągnęła limit architektury kompilacji systemu Android

Aby uniknąć tego ograniczenia, musisz skonfigurować swoją aplikację pod kątem multidex

Jeśli twoja minSdkVersion jest ustawiona na 21 lub wyższą, wszystko, co musisz zrobić, to ustawić multiDexEnabled na true w pliku build.gradle na poziomie modułu, jak pokazano poniżej:

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

W przeciwnym razie, jeśli twoja minSdkVersion jest ustawiona na 20 lub mniej, musisz użyć biblioteki obsługującej multidex w następujący sposób:

1 Zmodyfikuj plik build.gradle na poziomie modułu, aby włączyć multidex i dodać bibliotekę multidex jako zależność, jak pokazano poniżej:

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

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

2. W zależności od tego, czy nadpisujesz klasę Application, wykonaj jedną z następujących czynności:

  • Jeśli nie zastąpisz klasy Application, edytuj plik manifestu, aby ustawić android: name w tagu w następujący sposób:

    <application
        android:name="android.support.multidex.MultiDexApplication" >
        ...
    </application>
  • W przeciwnym razie Jeśli zastąpisz klasę Application, zmień ją, aby rozszerzyć MultiDexApplication (jeśli to możliwe) w następujący sposób:

   public class MyApplication extends MultiDexApplication { ... }
  • W przeciwnym razie nadpisujesz klasę Application, ale nie możesz zmienić klasy bazowej, możesz zamiast tego zastąpić metodę attachBaseContext () i wywołać MultiDex.install (this), aby włączyć multidex:

   public class MyApplication extends SomeOtherApplication {
     @Override
     protected void attachBaseContext(Context base) {
        super.attachBaseContext(base);
        MultiDex.install(this);
     }
   }
Sokmean Pon
źródło
Dlaczego aplikacja wymaga rozszerzenia MultiDexApplication?
Jason
1
MultiDexApplication jest klasą biblioteki obsługującej. Implementuje klasę aplikacji i zastępuje nazwę metody attachBaseContext, aby wykonać zadanie rejestracji MultiDex. Nie musisz rozszerzać tej klasy, jeśli nadpisujesz metodę attachBaseContext.
Sokmean Pon
1
To naprawić to dla mnie w 2019 roku z React Native ale brakuje 2 Przywóz w MainApplication.java: import android.content.Context;aimport android.support.multidex.MultiDex;
xaphod
1
Twoja odpowiedź pomogła mi przywrócić zgodność mojej aplikacji.
Alok Vishwakarma
18

Włączanie multidexnie jest dobrym rozwiązaniem, ponieważ multidexinne użycie w Androidzie, zobacz odpowiedź, co to jest multidex

Rozwiązaniem jest wyłączenie natychmiastowego uruchamiania, jak powiedział @Shylendra Madda

Ustawienia → Kompilacja, Wykonanie, Wdrożenie → Natychmiastowe uruchamianie i odznacz opcję Włącz natychmiastowe uruchamianie

Myślę, że przyczyną tego problemu jest włączenie funkcji natychmiastowego uruchamiania, a Android Studio nie umieszcza bibliotek, takich jak firebasew wygenerowanym apku, aby skrócić czas tworzenia projektu, ponieważ firebase biblioteka i inne biblioteki, takie jak mapsi inne, istnieją w usługach odtwarzania i są zainstalowane. na urządzeniu z Androidem, więc jeśli funkcja natychmiastowego uruchamiania jest włączona, nie trzeba umieszczać ich w wygenerowanym apk, aby przyspieszyć czas kompilacji.

Więc po wypakowaniu apk i zainstalowaniu go na innym urządzeniu zobaczysz ten wyjątek

Edalat Feizi
źródło
1
To idealne rozwiązanie
Ghanshyam Bagul
Wyłączenie funkcji Instant Run nie rozwiązuje problemu za mnie.
Alyoshak
W Android Studio 3.5.1 nie ma elementu Instant Run w sekcji Build, Execution, Deployment.
Vergiliy
@Vergiliy Zastąpili go zastosowaniem zmian, które można znaleźć w poście na blogu dotyczącym wydania android-developers.googleblog.com/2019/08/ ..., aby uzyskać więcej informacji, oraz w dokumentacji developer.android.com/studio/run#apply-changes, aby uzyskać więcej informacji o zastosowaniu zmiany
Edalat Feizi
14

Mam również ten sam problem po wypróbowaniu wszystkich rozwiązań, które znalazłem poniżej.

Jeśli zastosowałeś reguły proguard, dodaj poniższy wiersz do reguł ProGuard

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

i rozwiązuje mój problem.

Gunavant Patel
źródło
@gunavant patel bro, proszę, powiedz mi, jak dodać do proguard, proszę
Gowthaman M
1
@gunavant patel Myślę, że to rozwiązało mój problem ... czy możesz przesłać przykładowy kod, w którym zachować tę linię-keep class com.google.firebase.provider.FirebaseInitProvider
Gowthaman M
@GowthamanM Najpierw sprawdź, czy włączasz proguard w pliku app / build.gradle. jeśli włączone, znajdziesz plik reguł proguard w app / proguard-rules.pro w tym pliku dodaj powyższą linię. Jeśli nie włączysz proguard, to nie pomoże.
Gunavant Patel,
buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } }Jak włączyć, powiedz mi proszę pana
Gowthaman M
jeśli nie włączyłeś proguard, problem jest inny. ale pokażę ci, jak to włączyć. dodaj „minifyEnabled true” w wydaniu lub jeśli chcesz włączyć debugowanie, dodaj także typ debugowania.
Gunavant Patel,
8

1: Idź do gradle włącz multiDexEnabled i dodaj bibliotekę multidex w zależnościach.

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

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

2: Przejdź do pliku manifestu i napisz android: name = ". MyApplication" (nazwa klasy (MyApplication) jest opcjonalna, możesz napisać, co chcesz).

    <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: Jak napisałeś android: name = ". MyApplication" Wewnątrz aplikacji w pliku manifestu. spowoduje to błąd, ponieważ nie utworzyłeś klasy MyApplication. Utwórz klasę MyApplication rozszerz ją o klasę „application” lub po prostu kliknij. MyApplication, mały czerwony dymek pojawi się po lewej stronie składni kliknij na nią, zobaczysz (utwórz klasę MyApplication) w menu, kliknij na nią i Uwzględnij poniżej Metoda Wewnątrz tej klasy.

    public class MyApplication extends Application {

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

Jeśli chcesz uzyskać więcej informacji, kliknij ten link: [ https://developer.android.com/studio/build/multidex.html]

Miejmy nadzieję, że to działa dla Ciebie.

Shahzad Afridi
źródło
7

Najpierw dodaj następujące elementy do build.gradle (Module: app) ---->

defaultConfig{
..
multiDexEnabled true
..
}

Następnie w tym samym pliku dodaj następujące elementy

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

Następnie w AndroidManifest.xml napisz co następuje

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

Otóż ​​to. To na pewno zadziała

Hirak JD
źródło
6

Jeśli używasz MultiDex w aplikacji Gradle, zmiana rozszerza aplikację o rozszerzenie MultiDexApplication w klasie aplikacji. To zadziała wyzywająco

Suresh kumar
źródło
4

Miałem ten sam problem i rozwiązałem po prostu dodaj fragment kodu.Jeśli otrzymujesz ten problem, oznacza to, że wykonałeś już wszystkie kroki, które wymagają użycia Firebase. Wystarczy utworzyć klasę rozszerzającą Application (publiczna klasa Application_CrashReport rozszerza Application) i dodać tę klasę do pliku mainifest iw tej klasie po prostu przesłonić poniższą metodę

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

i dodaj MultiDex.install (this); w tej metodzie oznacza

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

Uwaga : - Nie zapomnij wykonać powyższych czynności

Piotr
źródło
2

Wynika to z MultiDex.

Kroki do rozwiązania:

  1. W gradle-> dependencies -> (compile'com.android.support: multidex: 1.0.1 ') Dodaj to w zależnościach

  2. W twoim projekcie klasa aplikacji rozszerza MultiDexApplication w ten sposób (publiczna klasa MyApplication rozszerza MultiDexApplication)

  3. Uruchom i sprawdź

Sukhdeep Saini
źródło
2

To trochę za późno dla tych, którzy przychodzą, ale sprawdź swoje zasady proguard! Zmarnowałem na to dużo czasu. Twoje reguły proguard mogą zmieniać nazwy na ważne pliki Firebase. To naprawdę tylko udowadnia problem w produkcji i natychmiastowym uruchomieniu :)

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
źródło
To załatwiło sprawę, umożliwiając multidex tylko marnowanie czasu!
Magnus W
2

Jak wspomniano wcześniej, jest to problem z multidex: powinieneś dodać implementację do swojego build.gradlei MainApplication.java. Ale to, co dodasz, naprawdę zależy od tego, czy obsługujesz AndroidX, czy nie. Oto, czego potrzebujesz, aby rozwiązać ten problem:

  1. Jeśli obsługujesz AndroidX

Umieść te linie kodu w swoim build.gradle(android / app / build.gradle):

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

Umieść te wiersze w swoim MainApplication.java(android / app / src / main / java /.../ MainApplication.java):

package com.your.package;

import androidx.multidex.MultiDexApplication; // <-- THIS LINE
...
...
public class MainApplication extends MultiDexApplication { ... } // <-- THIS LINE
  1. Jeśli nie obsługujesz AndroidX

Umieść te linie kodu w swoim build.gradle(android / app / build.gradle):

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
  ...
}

Umieść te wiersze w swoim MainApplication.java(android / app / src / main / java /.../ MainApplication.java):

package com.your.package;

import android.support.multidex.MultiDex;; // <-- THIS LINE
...
...
public class MainApplication extends MultiDexApplication { ... } // <-- THIS LINE
E. Dn
źródło
1

Powinieneś rozszerzyć swoją klasę Application o MultiDexApplicationzamiast Application.

Ali Akram
źródło
0

Ten problem wystąpił, gdy przełączyłem się na Android Studio 3.4 z wtyczką Android Gradle 3.4.0. który działa z kompilatorem R8.

Wtyczka Android Gradle zawiera dodatkowe predefiniowane pliki reguł ProGuard, ale zaleca się użycie proguard-android-optimize.txt . Więcej informacji tutaj .

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
źródło
0

Miałem ten sam problem i rozwiązałem go, zmieniając wersję FireabseStorage na taką samą, jak wersja bazy danych Firebase

 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'

do

 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
źródło
0

Jeśli masz> 20 minsdkversion, musisz użyć najnowszej wersji Firebase Auth, tj

implementacja „com.google.firebase: firebase-auth: 18.1.0”

i nie ma potrzeby konfigurowania funkcji multi-dex, jeśli w rzeczywistości jej nie potrzebujesz.

Napotkałem ten problem, gdy korzystałem z 16.0.5 z pomocnika Firebase, ale udało mi się go naprawić po aktualizacji do 18.1.0.

Srebrna Strzała
źródło
0

Jeśli korzystasz z platformy Xamarin.Forms, możesz sprawdzić, czy nie znalazłeś klasy „com.google.firebase.provider.FirebaseInitProvider”? ponieważ pozwala to uchwycić problem z błędem dex w Google Firebase podczas uruchamiania (obecnie nierozwiązany).

Wróciłem do krótkotrwałego stosowania kurczenia się i planuję używać ProGuard, dopóki R8 nie będzie bardziej stabilny.

Devology Ltd
źródło
-6

dodaj ścieżkę główną projektu google-services.json

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
źródło
rozważ dodanie informacji do swojej odpowiedzi, a ten kod nikomu nie pomoże
Ashu Kumar