添加Kotlin插件后出现org.gradle.api.plugins.Convention废弃警告求助
解决org.jetbrains.kotlin.android插件导致的Convention类废弃警告
问题根源
这个警告并非来自你的代码,而是kotlin-android插件内部仍在调用已废弃的org.gradle.api.plugins.Convention API。结合你的环境(Gradle 8.7-rc-4 + AGP 8.3.1),核心原因是版本兼容性不匹配——Gradle 8.x开始逐步废弃Convention API,而当前版本的kotlin-android插件/AGP尚未完全适配Gradle 8.7的新规范。
解决方案
1. 对齐AGP、Kotlin与Gradle的兼容版本
AGP 8.3.1的官方推荐Gradle版本范围是8.2~8.6,你使用的Gradle 8.7-rc-4属于预发布版,存在兼容性缺口。可以二选一:
- 降级Gradle到8.6稳定版(推荐,避免预发布版的未知问题)
- 升级AGP到8.4.0-beta及以上版本(已适配Gradle 8.7)
同时确保Kotlin版本与AGP匹配:AGP 8.3.x对应Kotlin 1.9.20,AGP 8.4.x对应Kotlin 1.9.21+,不要跨版本混用。
2. 检查并替换自身代码中的Convention用法
虽然你确认自身build.gradle无问题,仍可快速排查是否有遗留的废弃API调用:
- 移除所有
project.convention.getPlugin(...)写法 - 替换为基于
extensions的新API,示例如下:
旧代码(Groovy):
新代码:def androidConv = project.convention.getPlugin(AppPluginConvention)def androidExt = project.extensions.getByType(com.android.build.gradle.AppExtension)
3. 临时抑制警告(不推荐长期使用)
如果暂时无法调整版本,可在项目根目录的gradle.properties中添加配置,抑制该特定警告:
org.gradle.warning.filter.ignore=org.gradle.api.plugins.Convention
验证方案
修改后执行./gradlew clean build --warning-mode=all,确认警告消失。
内容的提问来源于stack exchange,提问作者luna
相关产品推荐
相关产品推荐

