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

Flutter版本升级后Android项目构建失败(Mac环境,涉及flutter-plugin-loader)

Flutter版本升级后Android项目构建失败(Mac环境,涉及flutter-plugin-loader)

我完全理解你升级Flutter版本后遭遇Android构建失败的挫败感——明明iOS和Web端都运行正常,唯独Android掉链子,甚至降级Flutter到3.32.8也没能解决问题,这确实让人摸不着头脑。结合你提供的所有配置信息和环境细节,我整理了几个针对性的排查与修复步骤,你可以跟着一步步操作试试看:

1. 对齐Kotlin、Gradle与Flutter的版本兼容性

从你的配置来看,settings.gradle中指定的Kotlin版本是2.1.0,而你当前使用的Flutter 3.32.8稳定版对Kotlin 2.x系列的适配还不够完善,过高的Kotlin版本会和Flutter自带的Gradle插件产生冲突。建议将Kotlin版本降级到Flutter官方推荐的兼容版本:

修改android/settings.gradle中的Kotlin插件版本:

plugins {
    id "dev.flutter.flutter-plugin-loader" version "1.0.0" apply false // 加上apply false,避免提前加载
    id "com.android.application" version "8.5.0" apply false
    id "org.jetbrains.kotlin.android" version "1.9.21" apply false // 替换为1.9.21
}

说明:Flutter 3.32.x稳定版与Kotlin 1.9.21、Gradle 8.5的兼容性经过验证,能有效避免版本不匹配导致的构建错误。

2. 统一Android编译配置,消除强制覆盖冲突

你的android/build.gradle中通过subprojects强制所有Android模块使用compileSdkVersion 34,但同时你本地已经安装了android-35平台,且Flutter的Gradle插件会自动管理编译版本,这种强制设置可能引发冲突。建议调整这部分配置:

修改android/build.gradle的subprojects区块:

subprojects {
    afterEvaluate { project ->
        if (project.plugins.hasPlugin("com.android.application") || project.plugins.hasPlugin("com.android.library")) {
            project.android {
                // 统一为你已安装的平台版本,或移除让Flutter自动适配
                compileSdkVersion 35
                buildToolsVersion "35.0.0"
            }
        }
    }
}

同时,确保android/app/build.gradle中保留Flutter版本同步配置:

android {
    compileSdkVersion flutter.compileSdkVersion // 保持这个配置,让Flutter同步版本
    ndkVersion flutter.ndkVersion
    // ... 其他配置不变
}

3. 优化flutter-plugin-loader的引用方式

你在settings.gradle中手动声明了flutter-plugin-loader,但通过includeBuild("$flutterSdkPath/packages/flutter_tools/gradle")已经引入了Flutter官方的Gradle工具包,手动声明可能导致重复加载冲突。建议调整为:

pluginManagement {
    // ... 其他配置不变
    includeBuild("$flutterSdkPath/packages/flutter_tools/gradle")
    repositories {
        google()
        mavenCentral()
        gradlePluginPortal()
    }
}

plugins {
    id "dev.flutter.flutter-plugin-loader" version "1.0.0" apply false // 仅声明,不提前应用
    id "com.android.application" version "8.5.0" apply false
    id "org.jetbrains.kotlin.android" version "1.9.21" apply false
}

这样可以让Flutter在需要时自动加载插件,避免版本或加载时机的冲突。

4. 彻底清理缓存并重新构建

Mac环境下的缓存残留是构建失败的常见元凶,建议执行以下完整清理步骤:

  1. 清理项目本地缓存:
    flutter clean
    rm -rf android/.gradle ios/.gradle
    rm -rf build .dart_tool
    
  2. (可选)清理全局Gradle缓存(若问题仍存在):
    rm -rf ~/.gradle/caches
    
  3. 在Android Studio中执行「File → Invalidate Caches... → Invalidate and Restart」,重启IDE。
  4. 重新同步依赖并构建:
    flutter pub get
    flutter build apk --debug
    

5. 验证JDK版本一致性

你的环境中使用的是Android Studio bundled的JDK 21,虽然Gradle 8.5支持JDK 17+,但部分旧Flutter插件可能对JDK 21的兼容性不佳。可以尝试确认Flutter使用的JDK路径正确:

flutter config --jdk-dir="/Applications/Android Studio.app/Contents/jbr/Contents/Home"

然后重新运行flutter doctor确认JDK配置正常。

如果以上步骤都尝试后仍未解决问题,建议你在构建时加上--verbose参数获取完整错误日志:

flutter build apk --verbose

根据日志中的具体错误提示(比如依赖冲突、插件兼容问题)再进一步排查。

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.07 09:20:32