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

Flutter项目Gradle构建失败(exit value 1)排查求助

Flutter项目编译失败排查与修复

问题背景

项目今早可正常运行,创建新Flutter项目时出现编译失败;切换Flutter频道并升级后,原有项目也无法编译。尝试匹配另一正常项目的依赖、Flutter频道及SDK版本,问题仍未解决。

项目配置文件

pubspec.yaml

description: A new Flutter project.

publish_to: 'none'

version: 1.0.0+1

environment:
  sdk: ">=2.17.0 <3.0.0"

dependencies:
  flutter:
    sdk: flutter
  image_picker: ^1.0.4

  cupertino_icons: ^1.0.5
  better_player: ^0.0.83
  video_compress: ^3.1.0
  getwidget: ^4.0.0
  flutter_speed_dial: ^7.0.0
  flutter_image_compress: ^2.1.0
  modal_bottom_sheet: ^3.0.0
  share: ^2.0.4  
  video_thumbnail: ^0.5.0
  image_downloader: ^0.31.0
  flutter_downloader: ^1.8.1
  flutter_file_downloader: ^1.1.2
  flutter_dotenv: ^5.0.2
  multi_image_picker: ^4.8.1
  intl: ^0.19.0
  image: ^4.0.13
  flutter_swiper_view: ^1.1.8
  circular_menu: ^4.0.0
  swipe_image_gallery: any
  galleryimage: ^2.0.1
  flutter_staggered_grid_view: ^0.7.0
  photo_view: ^0.15.0
  fwfh_text_style: ^2.23.8

dev_dependencies:
  flutter_launcher_icons: "^0.13.1"
  flutter_test:
    sdk: flutter

  flutter_lints: ^4.0.0

flutter:   
  uses-material-design: true

  assets:
    - lib/images/placeholder.png

App级build.gradle

def localProperties = new Properties()
def localPropertiesFile = rootProject.file('local.properties')
if (localPropertiesFile.exists()) {
    localPropertiesFile.withReader('UTF-8') { reader ->
        localProperties.load(reader)
    }
}

def flutterRoot = localProperties.getProperty('flutter.sdk')
if (flutterRoot == null) {
    throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
}

def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
if (flutterVersionCode == null) {
    flutterVersionCode = '1'
}

def flutterVersionName = localProperties.getProperty('flutter.versionName')
if (flutterVersionName == null) {
    flutterVersionName = '1.0'
}

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"

android {
    compileSdkVersion flutter.compileSdkVersion
    compileSdkVersion 34

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    defaultConfig {
        // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
        applicationId "com.example.cumulus"
        minSdkVersion 31
        targetSdkVersion flutter.targetSdkVersion
        versionCode flutterVersionCode.toInteger()
        versionName flutterVersionName
        multiDexEnabled true
    }

    buildTypes {
        release {
            // TODO: Add your own signing config for the release build.
            // Signing with the debug keys for now, so `flutter run --release` works.
            signingConfig signingConfigs.debug
        }
    }
}

flutter {
    source '../..'
}

gradle-wrapper.properties

#Fri Jun 23 08:50:38 CEST 2017
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-all.zip

Android根目录build.gradle

buildscript {
    ext.kotlin_version = '1.6.10'
    repositories {
        google()
        mavenCentral()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:7.1.2'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

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
}

编译错误输出

flutter run --release
Launching lib\main.dart on Nokia G310 5G in release mode...
You are applying Flutter's app_plugin_loader Gradle plugin imperatively using the apply script method, which is deprecated and will be removed in a future release. Migrate to applying Gradle plugins with the declarative plugins block: https://flutter.dev/go/flutter-gradle-plugin-apply

You are applying Flutter's main Gradle plugin imperatively using the apply script method, which is deprecated and will be removed in a future release. Migrate to applying Gradle plugins with the declarative plugins block: https://flutter.dev/go/flutter-gradle-plugin-apply

e: C:\src\flutter\packages\flutter_tools\gradle\src\main\kotlin\dependency_version_checker.gradle.kts:238:23: Unresolved reference: DependencyValidationException
e: C:\src\flutter\packages\flutter_tools\gradle\src\main\kotlin\dependency_version_checker.gradle.kts:263:23: Unresolved reference: DependencyValidationException
e: C:\src\flutter\packages\flutter_tools\gradle\src\main\kotlin\dependency_version_checker.gradle.kts:288:23: Unresolved reference: DependencyValidationException
e: C:\src\flutter\packages\flutter_tools\gradle\src\main\kotlin\dependency_version_checker.gradle.kts:313:23: Unresolved reference: DependencyValidationException
Warning: Flutter was unable to detect project Gradle, Java, AGP, and KGP versions. Skipping dependency version checking. Error was: org.gradle.internal.exceptions.LocationAwareException: Script 'C:\src\flutter\packages\flutter_tools\gradle\src\main\kotlin\dependency_version_checker.gradle.kts' line: 238
Script compilation errors:

  Line 238:                 throw DependencyValidationException(errorMessage)
                                  ^ Unresolved reference: DependencyValidationException

  Line 263:                 throw DependencyValidationException(errorMessage)
                                  ^ Unresolved reference: DependencyValidationException

  Line 288:                 throw DependencyValidationException(errorMessage)
                                  ^ Unresolved reference: DependencyValidationException

  Line 313:                 throw DependencyValidationException(errorMessage)
                                  ^ Unresolved reference: DependencyValidationException

4 errors
../../AppData/Local/Pub/Cache/hosted/pub.dev/better_player-0.0.83/lib/src/configuration/better_player_controls_configuration.dart:243:34: Error: The getter 'bodyText1' isn't defined for the class 'TextTheme'.
 - 'TextTheme' is from 'package:flutter/src/material/text_theme.dart' ('/C:/src/flutter/packages/flutter/lib/src/material/text_theme.dart').
Try correcting the name to the name of an existing getter, or defining a getter or field named 'bodyText1'.
      textColor: theme.textTheme.bodyText1?.color ?? Colors.white,
                                 ^^^^^^^^^
../../AppData/Local/Pub/Cache/hosted/pub.dev/better_player-0.0.83/lib/src/configuration/better_player_controls_configuration.dart:244:35: Error: The getter 'button' isn't defined for the class 'TextTheme'.
 - 'TextTheme' is from 'package:flutter/src/material/text_theme.dart' ('/C:/src/flutter/packages/flutter/lib/src/material/text_theme.dart').
Try correcting the name to the name of an existing getter, or defining a getter or field named 'button'.
      iconsColor: theme.textTheme.button?.color ?? Colors.white,
                                  ^^^^^^
Target kernel_snapshot_program failed: Exception


FAILURE: Build failed with an exception.

* Where:
Script 'C:\src\flutter\packages\flutter_tools\gradle\src\main\groovy\flutter.groovy' line: 1691

* What went wrong:
Execution failed for task ':app:compileFlutterBuildRelease'.
> Process 'command 'C:\src\flutter\bin\flutter.bat'' finished with non-zero exit value 1

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 56s
Running Gradle task 'assembleRelease'...                           57.9s
Error: Gradle task assembleRelease failed with exit code 1
#0      throwToolExit (package:flutter_tools/src/base/common.dart:10:3)
#1      AndroidGradleBuilder.buildGradleApp (package:flutter_tools/src/android/gradle.dart:500:9)
<asynchronous suspension>
#2      AndroidGradleBuilder.buildApk (package:flutter_tools/src/android/gradle.dart:224:5)
<asynchronous suspension>
#3      AndroidDevice.startApp (package:flutter_tools/src/android/android_device.dart:584:7)
<asynchronous suspension>
#4      FlutterDevice.runCold (package:flutter_tools/src/resident_runner.dart:534:33)
<asynchronous suspension>
#5      ColdRunner.run (package:flutter_tools/src/run_cold.dart:55:28)
<asynchronous suspension>
#6      RunCommand.runCommand (package:flutter_tools/src/commands/run.dart:853:27)
<asynchronous suspension>
#7      FlutterCommand.run.<anonymous closure> (package:flutter_tools/src/runner/flutter_command.dart:1405:27)
<asynchronous suspension>
#8      AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:153:19)
<asynchronous suspension>
#9      CommandRunner.runCommand (package:args/command_runner.dart:212:13)
<asynchronous suspension>
#10     FlutterCommandRunner.runCommand.<anonymous closure> (package:flutter_tools/src/runner/flutter_command_runner.dart:372:9)
<asynchronous suspension>
#11     AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:153:19)
<asynchronous suspension>
#12     FlutterCommandRunner.runCommand (package:flutter_tools/src/runner/flutter_command_runner.dart:308:5)
<asynchronous suspension>
#13     run.<anonymous closure>.<anonymous closure> (package:flutter_tools/runner.dart:130:9)
<asynchronous suspension>
#14     AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:153:19)
<asynchronous suspension>
#15     main (package:flutter_tools/executable.dart:93:3)
<asynchronous suspension>

核心问题分析

  • Gradle兼容性问题:当前使用的Gradle 7.2、AGP 7.1.2与升级后的Flutter版本不匹配,导致DependencyValidationException无法解析,依赖版本检查流程失败。
  • 第三方依赖兼容性问题:better_player: ^0.0.83使用了Flutter已废弃的TextTheme.bodyText1和TextTheme.button属性(Flutter 2.13+已将这些属性替换为bodyLarge、labelLarge等),与当前Flutter版本冲突。

修复步骤

1. 升级better_player依赖

修改pubspec.yaml中的better_player版本为兼容当前Flutter SDK的最新稳定版,例如:

better_player: ^0.0.86

执行命令更新依赖:

flutter pub get

2. 升级Gradle及相关组件

  • 修改gradle-wrapper.properties:更新Gradle版本至7.5
    distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip
    
  • 修改Android根目录build.gradle:升级AGP和Kotlin版本
    buildscript {
        ext.kotlin_version = '1.7.20'
        repositories {
            google()
            mavenCentral()
        }
    
        dependencies {
            classpath 'com.android.tools.build:gradle:7.4.2'
            classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        }
    }
    
  • 迁移Gradle插件声明方式:修改App级build.gradle中的插件声明为新的格式
    plugins {
        id 'com.android.application'
        id 'kotlin-android'
        id 'dev.flutter.flutter-gradle-plugin'
    }
    
    移除原有的apply plugin和apply from语句。

3. 清理缓存并重新编译

执行以下命令清理项目缓存并重新构建:

flutter clean
flutter pub get
flutter run --release

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 17:07:02