【问题标题】:Error:(15, 55) error: cannot access zza class file for com.google.android.gms.common.internal.safeparcel.zza not found错误:(15, 55) 错误:无法访问 com.google.android.gms.common.internal.safeparcel.zza 的 zza 类文件未找到
【发布时间】:2019-02-10 06:03:08
【问题描述】:

这是我的 build.gradle 应用文件:

dependencies {
    //picture library
    compile 'com.github.bumptech.glide:glide:3.8.0'
    //recycler and card view
    compile 'com.android.support:support-v4:26.+'
    compile 'com.android.support:recyclerview-v7:26.+'
    compile 'com.android.support:cardview-v7:26.+'

    //json
    compile 'com.google.code.gson:gson:2.8.5'
    compile 'com.squareup.retrofit2:converter-gson:2.2.0'
    compile 'com.squareup.retrofit2:retrofit:2.4.0'
    //firebase
    compile 'com.google.firebase:firebase-core:16.0.1'
    compile 'com.google.firebase:firebase-messaging:10.0.1'
    testCompile 'junit:junit:4.12'
}

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

这是我的 build.gradle 项目文件

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.3.3'

        classpath 'com.google.gms:google-services:4.0.1'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()

        maven { url "https://maven.google.com" }
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

我正在使用 Firebase 消息服务,我想在我的应用中收到通知。所以我只是检查日志是否有任何更新。我的FirebaseMessagingService 文件是:

public void onMessageReceived(RemoteMessage remoteMessage) {

        Log.d(TAG, "onMessageReceived: "+remoteMessage.getNotification().getTitle());

        Log.d(TAG, "onMessageReceived: "+remoteMessage.getNotification().getBody());

        Log.d(TAG, "onMessageReceived: "+remoteMessage.getData());

    }

编译时出现错误。如何解决?

【问题讨论】:

  • 为什么不发布整个build.gradle 以及为什么使用这些过时的构建工具??
  • 感谢刚刚通过将 firebase-messaging 版本更改为最新版本解决的问题。但是没有生成令牌,因为它说'com.google.firebase.iid.FirebaseInstanceIdService'已被弃用,使用什么替代方法?

标签: android firebase firebase-cloud-messaging build.gradle


【解决方案1】:

根据 firebase official documentation,请将您的依赖项更新到最新版本。所以请更改以下代码行:

compile 'com.google.firebase:firebase-core:16.0.1'
compile 'com.google.firebase:firebase-messaging:10.0.1'

implementation 'com.google.firebase:firebase-core:16.0.3'
implementation 'com.google.firebase:firebase-messaging:17.3.0'

您还可以将项目的 gradle 升级到最新版本:

classpath 'com.android.tools.build:gradle:3.1.4'

【讨论】:

  • 这仍然需要play-services-base & play-services-auth,因为错误消息提示。
  • @MartinZeitler 根据 OP 的要求,应相应添加 Google Play 服务依赖项。这就是OP可以Set Up a Firebase Cloud Messaging Client的方式。
  • 没有整个build.gradle(尽管完全缺少依赖项),这通常也是可以受ProGuard影响的类之一......虽然它可能是真的,只有play-services-base 可能是必需的,同时......那里的文档只声明firebase-core
【解决方案2】:

如果您遇到此错误:

error: cannot access zza class file for com.google.android.gms.common.internal.safeparcel.zza not found

然后使用这个:

implementation 'com.google.android.gms:play-services-maps:11.8.0'
implementation 'com.google.android.gms:play-services-location:11.8.0'

api 'com.google.firebase:firebase-messaging:17.0.0'

有效...

【讨论】:

    【解决方案3】:

    添加这个

        compile 'com.google.firebase:firebase-core:16.0.3'
        compile 'com.google.firebase:firebase-messaging:17.3.0'
    

    【讨论】:

      猜你喜欢
      • 2019-05-03
      • 1970-01-01
      • 2019-06-22
      • 2017-10-16
      • 1970-01-01
      • 1970-01-01
      • 2019-05-24
      • 2017-06-09
      • 1970-01-01
      相关资源
      最近更新 更多