Saya sedang menguji alat Crash baru: https://firebase.google.com/docs/crash/
Setelah melalui langkah-langkah, aplikasi meluncurkan dan crash mengatakan:
05-18 17:28:18.870 28743 28743 E AndroidRuntime: java.lang.RuntimeException: Unable to get provider com.google.firebase.provider.FirebaseInitProvider: java.lang.IllegalStateException: Incorrect provider authority in manifest. Most likely due to a missing applicationId variable in application's build.gradle.
05-18 17:28:18.870 28743 28743 E AndroidRuntime: at android.app.ActivityThread.installProvider(ActivityThread.java:5156)
05-18 17:28:18.870 28743 28743 E AndroidRuntime: at android.app.ActivityThread.installContentProviders(ActivityThread.java:4748)
05-18 17:28:18.870 28743 28743 E AndroidRuntime: at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4688)
05-18 17:28:18.870 28743 28743 E AndroidRuntime: at android.app.ActivityThread.-wrap1(ActivityThread.java)
05-18 17:28:18.870 28743 28743 E AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1405)
05-18 17:28:18.870 28743 28743 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:102)
05-18 17:28:18.870 28743 28743 E AndroidRuntime: at android.os.Looper.loop(Looper.java:148)
05-18 17:28:18.870 28743 28743 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:5417)
05-18 17:28:18.870 28743 28743 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
05-18 17:28:18.870 28743 28743 E AndroidRuntime: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
05-18 17:28:18.870 28743 28743 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
05-18 17:28:18.870 28743 28743 E AndroidRuntime: Caused by: java.lang.IllegalStateException: Incorrect provider authority in manifest. Most likely due to a missing applicationId variable in application's build.gradle.
05-18 17:28:18.870 28743 28743 E AndroidRuntime: at com.google.firebase.provider.FirebaseInitProvider.zza(Unknown Source)
05-18 17:28:18.870 28743 28743 E AndroidRuntime: at com.google.firebase.provider.FirebaseInitProvider.attachInfo(Unknown Source)
05-18 17:28:18.870 28743 28743 E AndroidRuntime: at android.app.ActivityThread.installProvider(ActivityThread.java:5153)
05-18 17:28:18.870 28743 28743 E AndroidRuntime: ... 10 more
Android studio
>Build
>Clean Project
Jawaban:
1.
Tambahkan applicationId ke build.gradle aplikasi:
Dan daripada Clean Project -> Build atau Rebuild Project
2. Jika minSdkVersion Anda <= 20 ( https://developer.android.com/studio/build/multidex )
Gunakan Multidex dengan benar.
build.gradle aplikasi
manifes.xml
3.
Jika Anda menggunakan kelas Aplikasi khusus
manifes.xml
sumber
cordova platform add android
)?cordova platform add android
. Saya kira itu akan diperbaiki setelah cordova diperbarui? Ps. Saya tidak menggunakan Firebase sama sekali.Saya dengan masalah yang sama pada perangkat dengan SDK <22, tetapi bagi saya alasannya adalah MultiDex,
MultiDex.install
harus dalamattachBaseContext
metode.Jika Anda menggunakan MultiDex, coba ini:
app / build.gradle:
sumber
Jawaban yang diterima tidak menyelesaikan masalah saya.
Jika Anda menggunakan Multidex, Aplikasi Anda harus meluas
MultiDexApplication
bukanApplication
.MyApplication.java
AndroidManifest.xml
Semoga ini bisa membantu.
sumber
Jika Anda mendapatkan masalah yang sama tetapi sudah
applicationId
mengaturnyabuild.gradle
, Anda juga dapat mencoba yang berikut:Build
>Clean Project
sumber
build
direktori yang berfungsi untuk saya. Sepertinya itu kacau oleh tarikan terakhir saya dari repo.Saya memiliki masalah yang sama di perangkat Pre Lollipop. Untuk menyelesaikannya saya lakukan sebagai berikut. Sementara saya menggunakan multiDex dalam proyek ini.
1. tambahkan ini untuk build.gradle di module: app
2. tambahkan ketergantungan ini
3.Kemudian di Aplikasi Utama
4. Dalam file manifes
Ini bekerja untuk saya. Semoga ini Membantu Anda juga :)
sumber
kamu harus yakin
untuk menambahkan baris ini di manifes Anda
https://developer.android.com/studio/run/index.html#instant-run
sumber
Jangan sertakan pustaka seluruh layanan play tetapi gunakan yang Anda butuhkan. Ganti baris di build.gradle Anda :
dengan yang sesuai dari Google Play Services APIs , seperti misalnya:
sumber
Tambahkan ini ke build.gradle tingkat modul Anda:
Jika Anda mengesampingkan
Application
kelas maka perluas dariMultiDexApplication
:Jika Anda tidak dapat memperluasnya dari
MultiDexApplication
kelas maka timpaattachBaseContext()
metode sebagai berikut:Dan jangan menjalankan apa pun sebelumnya
MultiDex.install(this)
dieksekusi.Jika Anda tidak mengganti
Application
kelas, cukup edit file manifes Anda sebagai berikut:sumber
Ini seharusnya bekerja:
Langkah 1:
Langkah 2:
Langkah 3: Ambil kelas lain
Langkah 4: Tambahkan baris ini pada manifes
sumber
Dalam kasus saya, masalahnya diselesaikan dengan menambahkan baris ini ke modul build.gradle:
// Tambahkan INI DI BAWAH INI
Sumber
sumber
build.gradle
dependencies { classpath 'com.google.gms:google-services:3.0.0' }
Dalam kasus saya, masalah terjadi setelah kami bermigrasi ke AndroidX. Untuk beberapa alasan, aplikasi memanggil MultiDex.install () dengan refleksi:
Saya mengubah paket dari
android.support.multidex.MultiDex
menjadiandroidx.multidex.MultiDex
. Itu berhasil.sumber
Alih-alih menambahkan secara manual nama paket pada
build.gradle
, Anda dapat melakukannya dengan cara ini:pertama-tama tambahkan baris ini di awal
Kemudian tambahkan ini pada konfigurasi default
Dan akhirnya tambahkan metode doExtractStringFromManifest
Karena ada banyak komentar Cordova pada jawabannya, jika Anda bekerja dengan Cordova, Anda tidak harus benar-benar mengedit
build.gradle
sendiri, komentar di awal yang mengatakanJadi, jika Anda menggunakan Cordova, hal terbaik yang dapat Anda lakukan adalah memperbarui ke cordova-android 5.1.0 atau lebih tinggi di mana perubahan ini sudah ada.
sumber
Milik saya karena Firebase SDK dalam file Gradle disetel ke versi nomor yang salah.
Saya menghapus utang Firebase dari Gradle dan menginstalnya kembali menggunakan
Firebase Assistant
sumber
Buka pengaturan android studio (dengan menekan
Ctrl+Alt+S
di windows), cariInstant Run
dan hapus centangEnable Instant Run
.Dengan menonaktifkan
Instant Run
dan menjalankan aplikasi Anda lagi, masalah akan teratasi.sumber
Untuk aplikasi asli reaksi, kesalahannya
java.lang.RuntimeException: Unable to get provider com.google.firebase.provider.FirebaseInitProvider: java.lang.ClassNotFoundException: Didn't find class "com.google.firebase.provider.FirebaseInitProvider"
adalah Hanya untuk perangkat dengan Versi Android <~ 4.4Dipecahkan dengan hanya mengganti
Application
diMainApplication.java
denganMultiDexApplication
CATATAN:
import android.support.multidex.MultiDexApplication;
sumber
Saya menambahkan kode berikut dalam file proguard.
dan itu berhasil dalam kasus saya.
sumber
dalam kasus saya, saya lupa menambahkan (atau menghapus secara tidak sengaja) inti firebase di build gradle
sumber
Saya mendapatkan kesalahan ini hanya pada perangkat dengan API lebih rendah dari 21. Dalam kasus saya, saya harus bekerja dengan proyek di mana
multiDexEnabled
opsi dibuild.gradle
sudah diatur ketrue
. Saya memeriksa file dex dari APK dan referensi metode nomor kurang dari 64k, jadi proyek tidak perlu multidex, oleh karena itu saya mengaturmultiDexEnabled
untukfalse
. Solusi ini berhasil untuk saya.sumber