生成Flutter APK时遇Gradle及Kotlin插件错误,求解决方法
修复Flutter Android构建的Gradle错误
错误1:Kotlin Gradle插件版本不兼容
你的项目当前使用的Gradle插件(7.2.0)与指定的Kotlin版本(2.0.10)不兼容,导致构建报错。提供两种解决思路:
方案A:降级Kotlin版本适配现有Gradle
修改android/build.gradle中的ext.kotlin_version为与Gradle 7.2.0兼容的版本,比如1.7.20:
buildscript { ext.kotlin_version = '1.7.20' // 替换原2.0.10 repositories { google() mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:7.2.0' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } }
方案B:升级Gradle插件适配Kotlin 2.0+
如果想保留Kotlin 2.0.10,需要将Gradle插件版本升级到8.0及以上(比如8.2.0),同时匹配Gradle分发版本:
buildscript { ext.kotlin_version = '2.0.10' repositories { google() mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:8.2.0' // 升级插件版本 classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } }
同时修改android/gradle/wrapper/gradle-wrapper.properties中的分发URL:
distributionUrl=https\://services.gradle.org/distributions/gradle-8.2-all.zip
错误2:找不到Properties()方法
Gradle 7+的Groovy环境默认不再自动导入java.util.Properties,导致初始化报错。需要在android/app/build.gradle中使用全类名初始化:
修改两处new Properties()为new java.util.Properties():
// 第一处 def localProperties = new java.util.Properties() def localPropertiesFile = rootProject.file('local.properties') if (localPropertiesFile.exists()) { localPropertiesFile.withReader('UTF-8') { reader -> localProperties.load(reader) } } // ... // 第二处 def keystoreProperties = new java.util.Properties() def keystorePropertiesFile = rootProject.file('key.properties') if (keystorePropertiesFile.exists()) { keystoreProperties.load(new FileInputStream(keystorePropertiesFile)) }
最后验证
执行以下命令清理缓存并重新构建APK:
flutter clean flutter build apk
内容的提问来源于stack exchange,提问作者Rayan syed
相关产品推荐
相关产品推荐

