Flutter使用flutter_sms插件遇Kotlin Gradle版本兼容问题求助
问题解决:flutter_sms依赖的Kotlin Gradle插件版本过低导致的兼容问题
问题原因
你的项目根目录已经配置了Kotlin 1.7.10和AGP 7.3.0,但引入的flutter_sms插件自身依赖的是Kotlin Gradle Plugin 1.3.50,低于AGP要求的1.5.20版本,从而触发兼容性报错。
解决方法
方法1:升级flutter_sms到最新版本
这是最推荐的方案,新版本的插件通常会更新依赖以适配高版本的AGP和Kotlin:
- 打开项目根目录的
pubspec.yaml文件,找到flutter_sms的依赖项 - 将版本号改为最新稳定版,或者直接执行命令:
flutter pub upgrade flutter_sms - 执行
flutter pub get完成依赖更新
方法2:强制子模块使用项目根目录的Kotlin版本
如果暂时无法升级flutter_sms,可以通过Gradle的依赖解析策略,强制所有子模块(包括flutter_sms)使用你项目根目录配置的Kotlin版本:
- 打开项目根目录的
android/build.gradle文件 - 在
buildscript块之后,添加以下配置:subprojects { project.configurations.all { resolutionStrategy.eachDependency { details -> if (details.requested.group == 'org.jetbrains.kotlin' && details.requested.name == 'kotlin-gradle-plugin') { details.useVersion "$kotlin_version" } } } } - 保存文件后,重新执行构建命令
方法3:降级Android Gradle Plugin(不推荐)
如果以上两种方法都无法生效,可以考虑降级AGP到兼容Kotlin 1.3.50的版本,但这会限制项目后续的功能更新:
- 修改
android/build.gradle中的AGP版本为4.2.2,同时调整gradle版本(需要对应修改gradle/wrapper/gradle-wrapper.properties中的distributionUrl为https\://services.gradle.org/distributions/gradle-6.7.1-all.zip) - 修改后的buildscript块示例:
buildscript { ext.kotlin_version = '1.3.50' repositories { google() mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:4.2.2' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } }
内容的提问来源于stack exchange,提问作者Niescte
相关产品推荐
相关产品推荐

