You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter开发Android多工具版本兼容及持续更新指导请求

Flutter Android项目工具版本适配与持续更新指南需求

我正在使用Flutter开发Android应用,开发过程中需用到大量指定版本的工具,但难以找到针对Flutter场景的版本适配说明。更新工具版本时常出现构建失败,还不清楚是否存在隐性影响。现请求指导如何保持项目使用正确的新版本,并提供后续持续更新的准则,涉及的工具/框架如下:

Gradle

需明确Gradle本身与**Gradle构建工具(又称Gradle Plugin)**是两个独立概念:

  • Gradle版本定义在android\gradle\wrapper\gradle-wrapper.properties文件中,我已升级至7.5.1版本:
    distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-all.zip
    
  • Gradle构建工具版本定义在android/build.gradle的依赖配置块中:
    dependencies {
        classpath 'com.android.tools.build:gradle:7.4.2'
    }
    
  • Android Studio推荐Gradle 7.5.x(当前最新补丁为7.5.1)搭配Gradle Plugin 7.4.x(当前最新补丁为7.4.2),但Flutter内置的默认Gradle Plugin版本仍为4.x(路径为flutter/packages/flutter_tools/gradle/flutter.gradle,版本为4.1.0),2023年来看已十分老旧。我知道升级通常能带来收益,但不确定是否有必要升级。

Kotlin

项目同时使用Kotlin和Java(不清楚原因),且Kotlin版本需与Gradle适配。通过反复尝试,我确定1.8.10版本可与Gradle 7.5.1及Gradle Plugin 7.4.2兼容,配置在android/build.gradle文件中:

ext.kotlin_version = '1.8.10'

Java

这部分存在诸多困惑:

  • build.gradle中的编译配置使用1.8版本:
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    
    // For Kotlin projects
    kotlinOptions {
        jvmTarget = "1.8"
    }
    
    部分文档提到使用1.6版本,也有文档指出Gradle 7.4可搭配更高版本,但大部分文档仍以1.8为主,不确定是否需要升级。
  • 当前使用的JDK版本为openjdk version "11.0.16.1" 2022-08-12 LTS,Gradle支持最高19版本,但不确定升级至更高版本是否有收益。
  • 近期Android Studio将Java JRE从jre目录迁移至jbr目录,导致flutter doctor报错、构建失败。
  • 不清楚appName_android.iml文件中<module type="JAVA_MODULE" version="4">的含义及是否需要升级。

NDK

NDK通过Android Studio安装和更新,Flutter会在配置文件中引用它。我在android/app/build.gradle中覆盖了默认配置,指向通过Android Studio SDK管理器安装的最新版本:

android {
    compileSdkVersion 33 //flutter.compileSdkVersion
    ndkVersion '25.2.9519653'
}

Android Studio的兼容性说明显示,Gradle Plugin 7.4对应NDK版本为23.1.7779620,该版本也是Flutter内置配置使用的版本。

Flutter Build Tools

该工具本应在local.properties文件中配置,但我最终将其添加至android/app/build.gradle:

def flutterBuildToolsVersion = localProperties.getProperty('flutter.buildToolsVersion')
if (flutterBuildToolsVersion == null) {
    flutterBuildToolsVersion = '33.0.2'
}

它与Android目标版本相关,部分文档提到使用30.0.3版本,我将其设置为与Android Studio中的最新版本一致。

AndroidX Work Runtime KTX

此前因构建错误添加了该依赖,配置在android/build.gradle的依赖中:

implementation 'androidx.work:work-runtime-ktx:2.8.1'

不确定是否需要更新。

Multidex

移除发布版本NDK的abiFilters中的x86后出现构建失败,在build.gradle中添加如下配置解决了问题,但不清楚其作用及是否需要更新:

multiDexEnabled = true
implementation("androidx.multidex:multidex:2.0.1")

希望获得帮助,了解如何保持所有这些工具版本更新且兼容,并提供后续持续更新的指导准则,而非仅当前适用的版本。

内容的提问来源于stack exchange,提问作者under

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 12:35:25