Flutter项目Gradle构建报错求助:new Properties()与GradleException()问题
解决Flutter Gradle构建中的
new Properties()和GradleException()错误 错误根源
这两个问题基本都是Gradle 7.x及以上版本的API变更导致的:
new Properties():旧版Gradle的隐式导入在新版中失效,直接初始化会报找不到类的错误GradleException():Gradle 7+移除了该异常类的默认导入,必须使用全限定类名才能调用
分步修复方案
1. 修复new Properties()错误
找到项目中使用该代码的脚本文件(通常是android/build.gradle或android/app/build.gradle),任选一种方式修改:
方式一:添加类导入
在脚本顶部增加导入语句:import java.util.Properties之后保留
new Properties()的写法即可。方式二:使用全限定类名初始化
直接把代码中的new Properties()替换为:new java.util.Properties()
2. 修复GradleException()错误
定位到抛出该异常的代码位置,替换为以下任意一种写法:
方式一:使用全限定类名
将throw new GradleException("错误信息")修改为:throw new org.gradle.api.GradleException("错误信息")方式二:改用Flutter适配的
BuildException
先在脚本顶部导入:import com.android.build.gradle.api.BuildException再把异常抛出语句替换为:
throw new BuildException("错误信息")
额外验证步骤
- 执行
flutter upgrade将Flutter SDK更新至最新稳定版 - 检查
android/gradle/wrapper/gradle-wrapper.properties中的Gradle版本是否与Flutter兼容(Flutter 3.x推荐Gradle 7.4+),示例配置:distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-all.zip - 清理缓存后重新构建:执行
flutter clean && flutter pub get && cd android && ./gradlew clean(Mac/Linux)或flutter clean && flutter pub get && cd android && gradlew clean(Windows),再同步Gradle项目
内容的提问来源于stack exchange,提问作者Osama Nisar
相关产品推荐
相关产品推荐

