在Android应用中设置Firebase

时间:2016-08-01 14:56:06

标签: android firebase google-play-services

我正在尝试将firebase集成到我的Android应用程序中。我从firebase控制台下载了google-services.json文件,在classpath 'com.google.gms:google-services:3.0.0'中添加了project/build.gradle。我还在apply plugin: 'com.google.gms.google-services'添加了app/build.gradle。我使用的是谷歌播放服务版本9.2.1。但是,当我使用gradle同步项目文件时,出现以下错误:

Error:Execution failed for task ':app:processDebugGoogleServices'.
Please fix the version conflict either by updating the version of the google-services plugin (information about the latest version is available at https://bintray.com/android/android-tools/com.google.gms.google-services/) or updating the version of com.google.android.gms to 9.0.0.

如果我将com.google.android.gms的版本更改为9.0.0,则会成功同步,但是当我运行我的应用时,我会收到以下错误:

A/FirebaseApp: Firebase API initialization failure.

java.lang.reflect.InvocationTargetException
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.google.firebase.FirebaseApp.zza(Unknown Source)
at com.google.firebase.FirebaseApp.initializeApp(Unknown Source)
at com.google.firebase.FirebaseApp.initializeApp(Unknown Source)
at com.google.firebase.FirebaseApp.zzbu(Unknown Source)
at com.google.firebase.provider.FirebaseInitProvider.onCreate(Unknown Source)
at android.content.ContentProvider.attachInfo(ContentProvider.java:1058)
at com.google.firebase.provider.FirebaseInitProvider.attachInfo(Unknown Source)
at android.app.ActivityThread.installProvider(ActivityThread.java:5097)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:4680)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4613)
at android.app.ActivityThread.access$1300(ActivityThread.java:162)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1424)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:194)
at android.app.ActivityThread.main(ActivityThread.java:5371)
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:833)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
at dalvik.system.NativeStart.main(Native Method)

Caused by: java.lang.IncompatibleClassChangeError: android.support.v4.content.ContextCompat
at com.google.firebase.iid.zzg.zzeC(Unknown Source)
at com.google.firebase.iid.zzg.<init>(Unknown Source)
at com.google.firebase.iid.zzg.<init>(Unknown Source)
at com.google.firebase.iid.zzd.zzb(Unknown Source)
at com.google.firebase.iid.FirebaseInstanceId.getInstance(Unknown Source)
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:525) 
at com.google.firebase.FirebaseApp.zza(Unknown Source) 
at com.google.firebase.FirebaseApp.initializeApp(Unknown Source) 
at com.google.firebase.FirebaseApp.initializeApp(Unknown Source) 
at com.google.firebase.FirebaseApp.zzbu(Unknown Source) 
at com.google.firebase.provider.FirebaseInitProvider.onCreate(Unknown Source) 
at android.content.ContentProvider.attachInfo(ContentProvider.java:1058) 
at com.google.firebase.provider.FirebaseInitProvider.attachInfo(Unknown Source) 
at android.app.ActivityThread.installProvider(ActivityThread.java:5097) 
at android.app.ActivityThread.installContentProviders(ActivityThread.java:4680) 
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4613) 
at android.app.ActivityThread.access$1300(ActivityThread.java:162) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1424) 
at android.os.Handler.dispatchMessage(Handler.java:107) 
at android.os.Looper.loop(Looper.java:194) 
at android.app.ActivityThread.main(ActivityThread.java:5371) 
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:833) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600) 
at dalvik.system.NativeStart.main(Native Method) 

以下是我的依赖项:

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


    compile 'com.android.support:appcompat-v7:24.1.1'
    compile 'com.android.support:design:24.1.1'
    compile 'com.android.support:support-v4:24.1.1'
    compile 'com.android.support:multidex:1.0.1'
    compile 'com.google.android.gms:play-services-location:9.0.0'
    compile 'com.google.android.gms:play-services-maps:9.0.0'
    compile 'com.android.support:recyclerview-v7:24.1.1'
    compile 'com.android.support:preference-v7:24.1.1'
    compile 'com.android.support:preference-v14:24.1.1'
    compile 'com.firebase:firebase-client-android:2.5.2'
    compile 'com.google.firebase:firebase-auth:9.0.0'
    compile 'com.google.android.gms:play-services-auth:9.0.0'
    compile 'com.google.android.gms:play-services-gcm:9.0.0'
    compile 'com.google.maps.android:android-maps-utils:0.4'
    compile 'com.facebook.android:facebook-android-sdk:[4,5)'
    compile 'com.mikhaellopez:circularimageview:3.0.2'

任何人都可以指导我如何使用firebase以及google play服务版本9.2.1 ????

2 个答案:

答案 0 :(得分:1)

您是否尝试使用

'com.google.firebase:firebase-auth:9.2.1' 

'com.google.android.gms:play-services:9.2.1' ?

9.2.1版本的firebase可以在7月14日使用。

答案 1 :(得分:1)

根据Google Play services 9.0.1 release notes

  

使用ContextCompat.getNoBackupFilesDir()修复了类更改编译错误。

如果您要使用Android支持库版本24.0.0或更高版本,请更新所有Google Play服务和Firebase依赖关系以使用9.0.1或更高版本。