升级Firebase库后出现cannot access zzbfm编译错误求助
问题根源与解决方案
这个编译错误的核心原因很明确:Firebase库和Google Play Services库的版本不匹配。Firebase与Google Play Services的各类库是深度绑定的,必须保持版本在同一个大版本范围内(比如都用11.x或者都用15.x),否则会出现内部依赖类找不到的问题——你遇到的com.google.android.gms.internal.zzbfm找不到就是典型的版本冲突导致的。
你已经把Firebase核心、广告、消息推送库升级到了15.x系列,但play-services-cast-framework还停留在11.8.0,新旧版本的内部依赖结构不兼容,才引发了编译失败。
具体解决步骤:
- 先确认项目根目录的
build.gradle已经配置了Google Maven仓库(没有的话,15.x版本的库会找不到):allprojects { repositories { google() // 等价于 maven { url 'https://maven.google.com' } jcenter() } } - 把
play-services-cast-framework升级到和Firebase核心一致的15.x版本,比如和firebase-core同版本的15.0.2:
这里顺便提醒下,从Android Gradle Plugin 3.0开始,implementation 'com.google.android.gms:play-services-cast-framework:15.0.2'compile指令已经被implementation取代,建议把所有依赖都换成implementation,遵循最新的依赖管理规范:implementation 'com.google.firebase:firebase-core:15.0.2' implementation 'com.google.firebase:firebase-ads:15.0.1' implementation 'com.google.firebase:firebase-messaging:15.0.2' implementation 'com.google.android.gms:play-services-cast-framework:15.0.2' - 同步项目后,编译错误应该就能解决了。
关于错误跳转到buildMediaInfo()的说明
编译器提示错误时跳转到这个方法,是因为这里用到了Cast Framework的MediaInfo、MediaMetadata类,而旧版本的Cast Framework和新版本Firebase的内部依赖冲突,导致编译器无法正确解析相关类的依赖链,但问题本质还是版本不匹配,只要统一版本就能解决。
内容的提问来源于stack exchange,提问作者Anton
相关产品推荐
相关产品推荐

