Flutter构建APK报错:无法解析'Properties',求解决方案
Flutter构建APK报错:无法解析'Properties'及终端构建失败解决方案
问题描述
执行flutter build apk时终端报错,同时出现**无法解析'Properties'**的错误,旧版本解决方案无效,相关配置文件如下:
settings.gradle
pluginManagement { def flutterSdkPath = { def properties = new Properties() file("local.properties").withInputStream { properties.load(it) } def flutterSdkPath = properties.getProperty("flutter.sdk") assert flutterSdkPath != null, "flutter.sdk not set in local.properties" return flutterSdkPath }() includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") repositories { google() mavenCentral() gradlePluginPortal() } } plugins { id "dev.flutter.flutter-plugin-loader" version "1.0.0" id "com.android.application" version "7.3.1" apply false id "org.jetbrains.kotlin.android" version "2.0.20" apply true } include ":app"
Android/build.gradle
allprojects { repositories { google() mavenCentral() } } rootProject.buildDir = "../build" subprojects { project.buildDir = "${rootProject.buildDir}/${project.name}" } subprojects { project.evaluationDependsOn(":app") } tasks.register("clean", Delete) { delete rootProject.buildDir }
解决方案
1. 修复Properties解析问题
在settings.gradle的pluginManagement块中,显式指定Properties的完整类路径,避免Gradle上下文导致的解析失败:
修改后的pluginManagement部分:
pluginManagement { def flutterSdkPath = { // 显式使用java.util.Properties完整类名 def properties = new java.util.Properties() file("local.properties").withInputStream { properties.load(it) } def path = properties.getProperty("flutter.sdk") assert path != null, "flutter.sdk not set in local.properties" return path }() includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") repositories { google() mavenCentral() gradlePluginPortal() } }
2. 修复Android插件与Kotlin版本兼容性问题
当前配置中com.android.application 7.3.1与kotlin.android 2.0.20版本不兼容,需调整为匹配的版本组合:
修改settings.gradle中的plugins块:
plugins { id "dev.flutter.flutter-plugin-loader" version "1.0.0" // 升级Android插件到支持对应Kotlin版本的版本 id "com.android.application" version "8.2.0" apply false // 使用与Android插件兼容的Kotlin版本 id "org.jetbrains.kotlin.android" version "1.9.20" apply false }
注:
apply false表示不在根项目应用插件,而是由app模块的build.gradle自行应用,符合新版Gradle的最佳实践。
3. 验证local.properties配置
确保项目根目录下的local.properties文件存在,且正确配置Flutter SDK路径:
flutter.sdk=/你的Flutter SDK绝对路径
4. 清理并重新构建
执行以下命令清理缓存并重新构建:
flutter clean flutter build apk
内容的提问来源于stack exchange,提问作者Jack
相关产品推荐
相关产品推荐

