You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

无Android Studio环境下Flutter项目Gradle版本兼容问题及升级配置方案咨询

无Android Studio环境下Flutter项目Gradle版本兼容问题及升级配置方案咨询

问题背景

我目前用一台低端笔记本学习Flutter,没法运行Android Studio,所以选择VS Code作为编辑器,已经成功完成Flutter环境配置:能正常执行Flutter命令、识别连接的真机,用flutter create testrun创建测试项目也能成功构建。

但执行flutter run时遇到了Java版本与Flutter Gradle版本不兼容的报错。我查过资料,大多说要修改gradle-wrapper.properties里的distribution url,但没有Android Studio的情况下不知道怎么操作;另外我已经手动更新了Gradle版本,参考了Gradle与Java的兼容性要求,现在想知道:

  1. 是否可以仅通过Flutter来升级Gradle?
  2. 如何在不使用Android Studio的情况下,为Flutter项目配置Gradle版本,并且设置成默认版本,不用每次创建新项目都手动修改?

解决方案(无需Android Studio)

1. 手动修改现有项目的Gradle版本

你可以直接通过VS Code编辑项目里的Gradle配置文件:

  • 打开Flutter项目,找到路径:android/gradle/wrapper/gradle-wrapper.properties
  • 修改其中的distributionUrl字段为你需要的兼容版本,比如如果要使用兼容Java 11的Gradle 7.6,就改成:
    distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-all.zip
    
  • 同时打开android/build.gradle文件,找到dependencies块里的classpath "com.android.tools.build:gradle:x.x.x",把版本号改成和Gradle兼容的Android Gradle Plugin(AGP)版本,比如Gradle 7.6对应AGP 7.4.2:
    dependencies {
        classpath "com.android.tools.build:gradle:7.4.2"
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
    

2. 设置Flutter默认Gradle模板,避免每次新建项目修改

Flutter自带项目模板,你可以修改模板文件,让后续新建的项目自动使用指定的Gradle版本:

  • 找到Flutter安装目录下的模板路径:
    • Windows:Flutter安装目录\packages\flutter_tools\templates\app\android\gradle\wrapper
    • macOS/Linux:Flutter安装目录/packages/flutter_tools/templates/app/android/gradle/wrapper
  • 打开该路径下的gradle-wrapper.properties.tmpl文件,修改distributionUrl字段为你需要的版本,比如:
    distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-all.zip
    
  • 同时修改同目录上级的build.gradle.tmpl文件(路径:.../templates/app/android),更新AGP版本:
    dependencies {
        classpath "com.android.tools.build:gradle:7.4.2"
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
    

修改完成后,后续用flutter create创建的新项目就会自动使用你配置的Gradle和AGP版本了。

3. 验证配置是否生效

修改完成后,执行以下命令确认配置:

  • 运行flutter doctor --verbose,检查Java版本和Gradle版本的兼容性
  • 在项目根目录执行./gradlew --version(macOS/Linux)或gradlew --version(Windows),查看当前Gradle版本是否匹配预期

备注:内容来源于stack exchange,提问作者Balachan

火山引擎 最新活动