添加google-services:4.3.10后ListenableFuture无法解析怎么办
问题根因
报错的核心原因是依赖配置位置错误:com.google.gms:google-services是Gradle编译期插件,不属于应用运行时依赖,你将其放到app模块的implementation配置块中,会把插件自身携带的旧版Guava库引入编译类路径,和CameraX依赖的新版Guava中提供的ListenableFuture类产生版本仲裁冲突,最终触发类找不到的编译错误。
最优修复步骤
按以下顺序操作即可彻底解决问题,不需要额外降级CameraX或者Google服务版本:
- 第一步:直接删除app模块dependencies块中错误添加的
implementation 'com.google.gms:google-services:4.3.10'配置行。 - 第二步:打开项目根目录下的
build.gradle文件(和settings.gradle同层级的根配置文件,不是app模块下的),在buildscript > dependencies块中添加插件的classpath配置,参考示例:
buildscript { repositories { google() mavenCentral() } dependencies { // 保留你原有的Android Gradle Plugin等classpath配置 // google-services插件的正确引入位置 classpath 'com.google.gms:google-services:4.3.10' } }
- 第三步:回到app模块的
build.gradle文件,在文件最底部(不要放在dependencies块内部)添加插件应用声明:
apply plugin: 'com.google.gms.google-services'
- 第四步:为了避免后续其他三方库再次带来Guava版本冲突,可以在app模块的dependencies块中显式声明Android适配的稳定版Guava依赖,强制全局统一版本:
implementation 'com.google.guava:guava:31.1-android'
- 第五步:点击Gradle Sync同步配置,同步完成后执行clean项目操作,再重新编译即可。
补充校验:如果想确认冲突是否彻底解决,可以在Android Studio的Terminal中执行
./gradlew app:dependencies查看依赖树,搜索guava关键字确认所有节点引用的都是你声明的31.1-android版本,不存在旧版guava残留即可。
内容的提问来源于stack exchange,提问作者HelloWorld
相关产品推荐
相关产品推荐

