签名版本上的Firebase Cloud Messaging + FirebaseInitProvider.zza(未知来源)

时间:2017-06-24 18:48:15

标签: java android firebase-cloud-messaging

我已按照此链接提供的步骤在我的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但是没有一个对我有效:(

我错过了什么吗?

1 个答案:

答案 0 :(得分:1)

当您使用多个Firebase(或Google Play服务)库时,会发生这种情况。

Firebase(和Google Play服务)库必须全部使用相同版本。

这个问题可能不会由您引入,而是由其他一些依赖于同一个库的特定版本的库引入。

运行./gradlew dependencies以检查依赖项列表及其版本。

更新:如果依赖项看起来不错,但问题仍然存在,请尝试./gradlew clean&重建。