我已按照此链接提供的步骤在我的Android应用中集成了Firebase云消息传递:
Set Up a Firebase Cloud Messaging Client App on Android
以下是我的应用build.gradle的一部分:
dependencies {
compile 'com.google.android.gms:play-services-analytics:11.0.1'
compile 'com.google.firebase:firebase-messaging:11.0.1'
compile 'com.google.firebase:firebase-core:11.0.1'
}
apply plugin: 'com.google.gms.google-services'
以下是我的Project build.gradle:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.3.3'
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
classpath 'com.google.gms:google-services:3.1.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
我正在使用AndroidStudio版本2.3.3
由于某些原因,当我在设备上直接通过AndroidStudio安装我的应用程序时,它运行正常,但是当我创建一个已签名的版本时,安装它并启动它会崩溃下面的堆栈跟踪:
E/AndroidRuntime: FATAL EXCEPTION: main
Process: xyz.myapp, PID: 8723
java.lang.NoSuchMethodError: No static method zzb(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; in class Lcom/google/android/gms/common/internal/zzac; or its super classes (declaration of 'com.google.android.gms.common.internal.zzac' appears in /data/app/xyz.myapp-1/base.apk)
at com.google.firebase.provider.FirebaseInitProvider.zza(Unknown Source)
at com.google.firebase.provider.FirebaseInitProvider.attachInfo(Unknown Source)
at android.app.ActivityThread.installProvider(ActivityThread.java:5852)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:5444)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5383)
at android.app.ActivityThread.-wrap2(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1541)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6123)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:757)
我尝试了在这个链接上提出的解决方案:Firebase API initialization failure. (java.lang.IncompatibleClassChangeError) #24但是没有一个对我有效:(
我错过了什么吗?
答案 0 :(得分:1)
当您使用多个Firebase(或Google Play服务)库时,会发生这种情况。
Firebase(和Google Play服务)库必须全部使用相同版本。
这个问题可能不会由您引入,而是由其他一些依赖于同一个库的特定版本的库引入。
运行./gradlew dependencies
以检查依赖项列表及其版本。
更新:如果依赖项看起来不错,但问题仍然存在,请尝试./gradlew clean
&重建。