You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级Play服务广告库后ListenableFuture缺失致编译报错

广告库升级后编译错误的原因与解决办法

原因分析

这不是广告库的bug,而是Google Ads SDK 22.4.0版本的依赖变更导致的:

  • 22.3.0及之前的版本默认包含了Guava库的ListenableFuture相关依赖;
  • 22.4.0版本开始移除了这个默认依赖,而你的代码中直接引用了com.google.common.util.concurrent.ListenableFuture,所以出现编译找不到包的错误。
  • 和Room的版本冲突可能性极低,核心问题还是广告库的依赖裁剪。

解决办法

有两种可行方案,根据你的项目需求选择:

方案1:直接添加Guava依赖

如果你的代码必须保留对Guava版本ListenableFuture的引用,在Module级别的build.gradle(或build.gradle.kts)的dependencies块中添加适配Android的Guava依赖:

implementation 'com.google.guava:guava:32.1.3-android'

同步项目后重新编译即可。

方案2:替换为AndroidX的实现(推荐)

Google官方推荐使用AndroidX生态下的ListenableFuture实现,避免Guava版本冲突问题:

  1. 将代码中的导入语句替换为:
import androidx.concurrent.futures.ListenableFuture;
  1. 若项目未添加相关依赖,在dependencies块中加入:
implementation 'androidx.concurrent:concurrent-futures:1.1.0'

验证步骤

添加依赖后执行Gradle同步,重新编译项目。如果仍有问题,可以通过以下命令查看项目依赖树,确认相关依赖是否正确引入:

./gradlew app:dependencies

(Android Studio中也可通过右侧Gradle窗口 → 对应Module → Tasks → android → androidDependencies查看)

内容的提问来源于stack exchange,提问作者user1785730

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 08:17:08