2016-05-19 3 views
30

Мы следовали за Add Firebase to your Android Project, но мы не можем видеть приложение, получающее данные в Firebase Console.
И когда мы запустим приложение, журнал говорит:FirebaseInitProvider: Инициализация FirebaseApp неуспешно

FirebaseInitProvider: FirebaseApp initialization unsuccessful 

Что это значит? Что мы делаем не так?
Я не могу найти эту ошибку в документах, а не в StackOverflow.

+2

Та же проблема «com.google.gms.google-услуг» здесь. – tisch

+0

Firebase показывает счетчик все время рядом с приложением, и когда вы нажимаете на него, как аналитика, так и сбои вызывают ошибку. Это происходит с импортированным проектом с консоли Google, новые проекты работают нормально ... – TheBronx

+0

Я попытался создать новый проект в firebase, но проблема все еще сохраняется. – tisch

ответ

14

Это происходит, когда у вас нет apply plugin: 'com.google.gms.google-services' в вашем app/build.gradle. Попробуйте добавить его.

Также убедитесь, что в Android SDK Manager установлен SDK Google Play.

0

Я получил тот же вывод logcat.

Fixed это обновив мой Google Play Services зависимости для 9.0.0 в моем приложении/build.gradle

и обновление

buildScript { 
    //... 
    dependencies { 
     //... 
     classpath 'com.google.gms:google-services:3.0.0' 
    } 
} 

в моем проекте build.gradle к 3.0.0

28

What does this mean? What are we doing wrong?

Предположим, что аутентификация не удалась.

а) buildscriptrepositories и dependencies для проекта уровня build.gradle:

buildscript { 
    repositories { 
     google() 
     jcenter() 
    } 
    dependencies { 

     // Android Build Tools Plugin 
     classpath "com.android.tools.build:gradle:3.0.1" 

     // Google Services Plugin 
     classpath "com.google.gms:google-services:3.1.2" 

     // Firebase Plugins (optional) 
     // classpath 'com.google.firebase:firebase-plugins:1.1.5' 
    } 
} 

б) dependencies для уровня модульmobile/build.gradle (х86 изображения Android Intel все еще может иметь предыдущую версию установленные Службы Google Play, например 10.2.0, запускаются на текущем эмуляторе x86, а 11.8.0 работает на моем физическом устройстве ARM). ссылки play-services и firebase-core составят все их зависимости, за исключением некоторых из них.

def playServicesVersion = "11.8.0" 

android { 
    ... 
    buildTypes { 
     debug { 
      // suffixing the package name for debug builds, 
      // in order to partially mute the crash-reporting 
      // is an *optional* configuration (see below): 
      applicationIdSuffix ".debug" 
     } 
    } 
} 

dependencies { 
    ... 
    // Google Play Services Library (in particular "play-services-auth") 
    compile("com.google.android.gms:play-services:${playServicesVersion}") {} 

    // Google Firebase Library 
    implementation "com.google.firebase:firebase-core:${playServicesVersion}" 
    // implementation "com.google.firebase:firebase-crash:${playServicesVersion}" 
    // implementation "com.google.firebase:firebase-perf:${playServicesVersion}" 
} 

с) в нижней строке mobile/build.gradle должно быть:

// apply the Google Services Plugin 
apply plugin: "com.google.gms.google-services" 

d) убедитесь, что есть (загруженные) учетные данные, доступные в app/google-services.json; на Firebase Console необходимо добавить как хеши SHA1 (или SHA256), отладки и в хранилище ключей релиза, чтобы иметь правильную аутентификацию обеих строчек; когда все матчи, он должен сообщить:

I/FirebaseInitProvider: FirebaseApp initialization successful 

Это все хорошо документирована, просто увидеть Setup Google Play Services, Firebase Quickstart или Crash Reporting; в то время как я нахожу эту статью в блоге Firebase весьма полезной: Organizing your Firebase-enabled Android app builds, потому что она объясняет, как частично отключить отчет о сбое. release notes всегда анонсирует изменения & изменений.

+0

Я хочу спросить, почему нам нужен classpath 'com.google.gms: google-services: 3.0.0', потому что последняя версия: 9.4.0? –

+1

@Dharvikshah, потому что есть только 'com.google.gms: google-services: 3.0.0'. один упакован как плагин Gradle, другой - как библиотека. 'google-services'! =' play-services'. также добавил некоторые комментарии выше. –

+0

Это вызывает проблему в моем случае: «Ошибка: выполнение не выполнено для задачи»: app: transformClassesWithDexForDebug '. > com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java .util.concurrent.ExecutionException: com.android.dex.DexIndexOverflowException: идентификатор метода не в [0, 0xffff]: 65536 ". Что это, и как я могу это исправить? –

3

Первое, что я бы посоветовал вам проверить это:

1) Включили ли ты использует разрешение-INTERNET в манифесте?

+0

Хороший! Иногда случается – Rafa0809

0

В моем случае я пытался выборочно компилировать сервисы Google Play. Вместо использования

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

, как описано в: https://developers.google.com/android/guides/setup#ensure_devices_have_the_google_play_services_apk

я вручную добавил карты и некоторые другие зависимости модуля от сервисов Google Play, как

compile 'com.google.android.gms:play-services-maps:9.4.0' 
compile 'com.google.android.gms:play-services-places:9.4.0' 

Unfourtunately Firebase купировались работает после этого.

В результате мне пришлось откатить и вернуться использовать

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

вместо выборочно.

0

Убедитесь, что вы добавили эту строку в уровне приложения Gradle файла сборки

применить плагин: