[英]Firebase database dependency crashes app
我正在尝试使用以下“ 为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)
MY App 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'
如何解决这个问题?
此问题是由使用不一致的Firebase库版本引起的。 更新构建依赖项以始终使用版本9.4.0。
compile 'com.google.firebase:firebase-core:9.4.0'
compile 'com.google.firebase:firebase-database:9.4.0'
如果像我一样,你拥有使用相同版本的所有firebase内容。 一定要检查所有谷歌相关的。
对我来说,我有:
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为我解决了这个问题。
因此,请确保所有firebase与其他谷歌相匹配。
出现此问题是因为依赖项版本不匹配意味着如果使用与唯一版本相关的所有库firebase,如下所示。
错误的方法 :
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'
我也在努力解决这个问题,在同一版本10.2.0上同时使用了play-services和firebase,但仍然有例外。 它是:
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"
而且异常消失了!
问题是firebase依赖....
这是版本兼容性问题
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'
}
我的firebase-ui版本1.2.0是一个问题
然后我用1.0.1改变了它与其他版本的firebase相匹配。
更多访问此页面....
升级到Android Studio v3和升级的SDK时,我遇到了同样的问题。 修复包含在app / Build.gradle中切换到11.4.2版本:
编译“com.google.android.gms:play-services-base:11.4.2”编译“com.google.firebase:firebase-core:11.4.2”
进入主Build.gradle移动到3.1.1版本并添加maven url
classpath 'com.google.gms:google-services:3.1.1'
maven {
url 'https://maven.google.com'
}
请参阅https://rnfirebase.io/docs/v3.0。* / installation / android#4.-Install-modules
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.