Я тестирую новый инструмент Crash: https://firebase.google.com/docs/crash/
После выполнения шагов, приложение запускается и вылетает, говоря:
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
Ответы:
1.
Добавьте applicationId в build.gradle приложения:
И чем Чистый Проект -> Построить или Перестроить Проект
2. Если ваш minSdkVersion <= 20 ( https://developer.android.com/studio/build/multidex )
Используйте Multidex правильно.
build.gradle приложения
manifest.xml
3.
Если вы используете пользовательский класс приложения
manifest.xml
источник
cordova platform add android
)?cordova platform add android
. Я думаю, это будет исправлено, как только Кордова получит обновление? Ps. Я вообще не использую Firebase.У меня была такая же проблема в устройствах с SDK <22, но для меня причина в MultiDex,
MultiDex.install
должна быть вattachBaseContext
методе.Если вы используете MultiDex, попробуйте это:
Приложение / build.gradle:
источник
Принятый ответ не решил мою проблему.
Если вы используете Multidex, ваше приложение должно расширяться
MultiDexApplication
вместоApplication
.MyApplication.java
AndroidManifest.xml
Надеюсь, поможет.
источник
Если у вас возникла та же проблема, но у вас уже есть
applicationId
наборbuild.gradle
, вы также можете попробовать следующее:Build
>Clean Project
источник
build
меня работал только удаление каталога. Похоже, это было испорчено моим последним изъятием из репо.У меня была такая же проблема в устройствах Pre Lollipop. Чтобы решить это я сделал следующим образом. Тем временем я использовал multiDex в проекте.
1. добавить это для build.gradle в модуль: app
2. добавить эту зависимость
3. Затем в главном приложении
4. В файле манифестов
Это работает для меня. Надеюсь, это поможет вам тоже :)
источник
ты должен быть уверен
добавить эту строку в свой манифест
https://developer.android.com/studio/run/index.html#instant-run
источник
Не включайте всю библиотеку сервисов воспроизведения, а используйте ту, которая вам нужна. Замените строку в вашем build.gradle :
с соответствующим из API Google Play Services , например:
источник
Добавьте это в свой build.gradle уровня модуля:
Если вы переопределите
Application
класс, тогда расширьте его сMultiDexApplication
:Если вы не можете расширить его из
MultiDexApplication
класса, переопределитеattachBaseContext()
метод следующим образом:И ничего не запускайте, пока
MultiDex.install(this)
не выполнится.Если вы не переопределяете
Application
класс, просто отредактируйте файл манифеста следующим образом:источник
Это должно работать:
Шаг 1:
Шаг 2:
Шаг 3: Пройди другой урок
Шаг 4: Добавьте эту строку в манифест
источник
В моем случае проблема была решена добавлением этой строки в модуль build.gradle:
// ДОБАВЛЯЕМ ЭТО ВНУТРИ
Источник
источник
build.gradle
dependencies { classpath 'com.google.gms:google-services:3.0.0' }
В моем случае проблема возникла после перехода на AndroidX. По какой-то причине приложение вызывало MultiDex.install () с отражением:
Я изменил пакет с
android.support.multidex.MultiDex
наandroidx.multidex.MultiDex
. Это сработало.источник
Вместо того, чтобы вручную добавлять имя пакета в
build.gradle
, вы можете сделать это следующим образом:сначала добавьте эту строку в начале
Затем добавьте это в defaultConfig
И, наконец, добавьте метод doExtractStringFromManifest
Поскольку есть много комментариев Cordova к ответу, если вы работаете с Cordova, вам не следует редактировать
build.gradle
сами, в начале есть комментарий, который говорит:Так что, если вы используете Cordova, лучшее, что вы можете сделать, это обновить ее до cordova-android 5.1.0 или выше, где эти изменения уже присутствуют.
источник
Мой был, потому что Firebase SDK в файле Gradle был установлен с неверной версией номера.
Я удалил дабы Firebase из Gradle и заново установил их, используя
Firebase Assistant
источник
Зайдите в настройки Android Studio (нажав
Ctrl+Alt+S
в Windows), найдитеInstant Run
и снимите флажокEnable Instant Run
.Если
Instant Run
снова отключить и запустить приложение, проблема будет решена.источник
Для приложения «Нативная реакция» ошибка была
java.lang.RuntimeException: Unable to get provider com.google.firebase.provider.FirebaseInitProvider: java.lang.ClassNotFoundException: Didn't find class "com.google.firebase.provider.FirebaseInitProvider"
получена только для устройств с версией Android <~ 4.4Решаемые его просто заменить
Application
вMainApplication.java
сMultiDexApplication
НОТА:
import android.support.multidex.MultiDexApplication;
источник
Я добавил следующий код в файл proguard.
и это сработало в моем случае.
источник
в моем случае я забываю добавить (или удалить случайно) ядро Firebase в сборке Gradle
источник
Я получил эту ошибку только на устройствах с API ниже 21. В моем случае мне приходилось работать с проектом, в котором
multiDexEnabled
опция inbuild.gradle
уже была установленаtrue
. Я проверил DEX файл из APK и ссылки число методов было меньше 64к, поэтому проект не должен быть multidex один, поэтому я поставилmultiDexEnabled
вfalse
. Это решение сработало для меня.источник