向旧Android项目添加广告/计费时的Kotlin版本兼容问题
解决Android项目添加广告/计费依赖后的Kotlin版本不兼容问题
核心原因
你添加的com.google.android.gms:play-services-ads:22.5.0和com.android.billingclient:billing:6.1.0依赖是用Kotlin 1.8编译的,而你的项目仍在使用Kotlin 1.6.21,两者的元数据版本不匹配,直接导致编译冲突。
修复方法
方法1:升级项目Kotlin版本(推荐)
你的项目使用Gradle 8.0,它本身就要求Kotlin版本至少为1.8.0,之前用1.6.21其实属于版本不匹配的隐患。直接升级Kotlin版本到1.8.x稳定版即可彻底解决问题:
- 打开项目根目录下的
build.gradle(或build.gradle.kts)文件 - 修改Kotlin插件版本:
- 若用
ext变量声明:buildscript { ext { kotlin_version = "1.8.22" // 替换为1.8.x系列的稳定版,比如1.8.22 } // ...其他配置内容 } - 若用plugins块声明:
plugins { id 'com.android.application' version '8.0.0' apply false id 'org.jetbrains.kotlin.android' version '1.8.22' apply false // ...其他插件配置 }
- 若用
- 同步Gradle项目后重新编译即可。
方法2:降级依赖到兼容Kotlin 1.6的版本(不推荐)
如果暂时不想升级Kotlin,可以找对应依赖的旧版本——这些版本是用Kotlin 1.6编译的:
- 广告依赖降级为
com.google.android.gms:play-services-ads:22.0.0 - 计费依赖降级为
com.android.billingclient:billing:5.2.0
但这种方法不推荐,旧版本可能存在安全漏洞,且后续和API33的适配性会越来越差,长远来看升级Kotlin版本才是更稳妥的选择。
注意事项
升级Kotlin版本后,若个别自定义代码出现语法警告或错误,只需根据IDE提示微调即可(1.8版本对语法的兼容性优化改动通常很小)。
内容的提问来源于stack exchange,提问作者ZP007
相关产品推荐
相关产品推荐

