2016-08-03 85 views
13

我试图用以下“Set up Firebase Realtime Database for Android”示例写入我的数据库,但应用程序在启动时崩溃。Firebase数据库依赖项崩溃应用程序

这似乎是因为依赖性:

compile 'com.google.firebase:firebase-database:9.2.1' 

崩溃日志:

FATAL EXCEPTION: main 
Process: com.example.giat.myapplication, PID: 3874 
java.lang.NoSuchMethodError: No static method zzeq(Landroid/content/Context;)Lcom/google/android/gms/internal/zzalp; in class Lcom/google/android/gms/internal/zzalp; or its super classes (declaration of 'com.google.android.gms.internal.zzalp' appears in /data/data/com.example.giat.myapplication/files/instant-run/dex/slice-com.google.firebase-firebase-database-9.2.1_b22e7bdbdba6ace0ee1e94f163c76d1f75b59f7e-classes.dex) 
    at com.google.firebase.FirebaseApp.initializeApp(Unknown Source) 
    at com.google.firebase.FirebaseApp.initializeApp(Unknown Source) 
    at com.google.firebase.FirebaseApp.zzek(Unknown Source) 
    at com.google.firebase.provider.FirebaseInitProvider.onCreate(Unknown Source) 
    at android.content.ContentProvider.attachInfo(ContentProvider.java:1702) 
    at android.content.ContentProvider.attachInfo(ContentProvider.java:1665) 
    at com.google.firebase.provider.FirebaseInitProvider.attachInfo(Unknown Source) 
    at android.app.ActivityThread.installProvider(ActivityThread.java:5417) 
    at android.app.ActivityThread.installContentProviders(ActivityThread.java:4988) 
    at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4923) 
    at android.app.ActivityThread.access$1500(ActivityThread.java:144) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1424) 
    at android.os.Handler.dispatchMessage(Handler.java:102) 
    at android.os.Looper.loop(Looper.java:155) 
    at android.app.ActivityThread.main(ActivityThread.java:5696) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:372) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1028) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:823) 

我的应用程序的build.gradle:

apply plugin: 'com.android.application' 

android { 
compileSdkVersion 24 
buildToolsVersion "24.0.1" 

defaultConfig { 
    applicationId "com.example.giat.myapplication" 
    minSdkVersion 15 
    targetSdkVersion 24 
    versionCode 1 
    versionName "1.0" 
} 
buildTypes { 
    release { 
     minifyEnabled false 
     proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
    } 
} 
} 

dependencies { 
compile fileTree(dir: 'libs', include: ['*.jar']) 
testCompile 'junit:junit:4.12' 
compile 'com.android.support:appcompat-v7:24.1.1' 
compile 'com.google.firebase:firebase-core:9.4.0' 
compile 'com.google.firebase:firebase-database:9.2.1' 

} 


apply plugin: 'com.google.gms.google-services' 

如何解决这个问题?

+0

你还按照这些其他[设置structions](https://firebase.google.com/docs/android/setup)? –

+0

是的。我做了他们所说的一切 –

+0

尝试更新依赖关系,以便为firebase库使用相同的版本。同时使用9.4.0或9.2.1。 –

回答

35

此问题是由于使用不一致的Firebase库版本造成的。更新您的构建依赖关系以始终如一地使用版本9.4.0。

compile 'com.google.firebase:firebase-core:9.4.0' 
compile 'com.google.firebase:firebase-database:9.4.0' 
+0

感谢您对Firebase问题的评价@qbix。非常感激! –

+3

@FrankvanPuffelen:不客气。这是教育和满足。有时候我希望它不那么有趣。我应该专注于解决我自己的问题! –

+0

谢谢!它的工作现在:) ,但我想知道他们为什么不提及这一点(或只是我错过了它) –

3

这个问题是因为如果使用所有库唯一版本类似下面的方式火力点相关的依赖版本不匹配意味着发生。

错误方式:

compile 'com.google.firebase:firebase-ads:9.6.0' 
compile 'com.google.firebase:firebase-database:9.4.0' 
compile 'com.google.firebase:firebase-core:9.4.0' 

正确方法:

compile 'com.google.firebase:firebase-ads:9.6.0' 
compile 'com.google.firebase:firebase-database:9.6.0' 
compile 'com.google.firebase:firebase-core:9.6.0' 
3

如果像我一样,你必须使用相同的版本所有的火力点东西。一定要检查所有谷歌相关的一个。

对我来说,我有:

compile 'com.google.firebase:firebase-core:10.0.1' 
compile 'com.google.firebase:firebase-ads:10.0.1' 
compile 'com.google.firebase:firebase-config:10.0.1' 

和:

compile 'com.google.android.gms:play-services-ads:10.2.1' 

对我来说,问题不是该火力点没碰到过自己匹配,但他们不符合谷歌版本。用于广告。

改变我所有的firebase的使用10.2.1解决了我的问题。

因此,请确保所有的火力发电厂都与其他谷歌火柴机匹配。

2

我也在为此付出努力,在同一版本上同时提供了play-services和firebase 10.2.0,但仍然有例外。它是:

compile "com.google.android.gms:play-services-gcm:10.2.0" 
compile "com.google.firebase:firebase-messaging:10.2.0" 

我最终刚刚升级到10.2.1

compile "com.google.android.gms:play-services-gcm:10.2.1" 
compile "com.google.firebase:firebase-messaging:10.2.1" 

的例外都不见了!

-1

的问题是与火力的依赖....

这是一个版本的兼容性问题

dependencies { 

compile 'com.android.support:appcompat-v7:25.3.1' 
compile 'com.android.support.constraint:constraint-layout:1.0.0-alpha7' 
compile 'com.google.firebase:firebase-database:10.0.1' 
compile 'com.google.firebase:firebase-storage:10.0.1' 
compile 'com.google.firebase:firebase-auth:10.0.1' 
compile 'com.google.firebase:firebase-core:10.0.1' 

compile 'com.firebaseui:firebase-ui-database:1.0.1' 

testCompile 'junit:junit:4.12' 
compile 'com.android.support:cardview-v7:25.3.1' 
compile 'com.android.support:recyclerview-v7:25.3.1' 

} 

矿与火力的UI 1.2版中的问题。0

然后我改变它与1.0.1相匹配的其他版本的Firebase。

更多访问这个页面....

https://github.com/firebase/FirebaseUI-Android

0

我升级至Android工作室v3和升级的SDK时有同样的问题。 修复在app /的build.gradle包括切换到11.4.2版本:

编译 “com.google.android.gms:播放服务基地:11.4.2” 编译“com.google.firebase:火力核心:11.4.2"

到主的build.gradle 移动到3.1.1版本,并添加行家网址

classpath 'com.google.gms:google-services:3.1.1' 
    maven { 
     url 'https://maven.google.com' 
    } 

https://rnfirebase.io/docs/v3.0 * /安装/ Android的#4,安装模块

相关问题