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

运行Flutter App遇:fluttertoast:compileDebugJavaWithJavac执行失败求助

Flutter编译错误:fluttertoast模块JdkImageTransform执行失败

错误详情

Execution failed for task ':fluttertoast:compileDebugJavaWithJavac'.

Could not resolve all files for configuration ':fluttertoast:androidJdkImage'.
Failed to transform core-for-system-modules.jar to match attributes {artifactType=_internal_android_jdk_image, org.gradle.libraryelements=jar, org.gradle.usage=java-runtime}.
Execution failed for JdkImageTransform: D:\softwares\SDK\platforms\android-33\core-for-system-modules.jar.
Error while executing process C:\Program Files\Android\Android Studio\jbr\bin\jlink.exe with arguments {--module-path C:\Users<my_user_name>.gradle\caches\8.10\transforms\4d29fbaa4346204be836c2ef53b3528e-d08e292b-46c8-4b2e-a9a3-70c9d6beb0d2\transformed\output\temp\jmod --add-modules java.base --output C:\Users<my_user_name>.gradle\caches\8.10\transforms\4d29fbaa4346204be836c2ef53b3528e-d08e292b-46c8-4b2e-a9a3-70c9d6beb0d2\transformed\output\jdkImage --disable-plugin system-modules}

项目配置信息

pubspec.yaml依赖配置

environment:
  sdk: ">=3.1.0 <4.0.0"

dependencies:
  flutter:
    sdk: flutter

  cupertino_icons: ^1.0.5
  http: ^0.13.4
  sqflite: ^2.0.0+3
  shared_preferences: 2.2.2
  image_picker: 1.0.5
  flutter_swiper_null_safety: 1.0.2
  flutter_rating_bar: 4.0.1
  flutter_html: ^3.0.0-alpha.3
  carousel_slider: ^4.0.0
  url_launcher: ^6.0.20
  cached_network_image: ^3.2.0
  flutter_mobx: ^2.0.5
  numeric_keyboard: ^1.0.0
  flutter_secure_storage: 9.0.0
  dio: ^4.0.4
  flutter_math_fork: ^0.7.1
  flutter_svg: 2.0.0+1
  intl: 0.18.1
  razorpay_flutter: 1.3.7
  loading_indicator: ^3.1.1

dev_dependencies:
  flutter_lints: ^2.0.0

flutter:
  uses-material-design: true

Android项目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 {
    namespace "com.rohitkolar.townie_things"
    compileSdkVersion 34
    ndkVersion '28.0.12674087 rc2'

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_17
        targetCompatibility JavaVersion.VERSION_17
    }

    kotlinOptions {
        jvmTarget = '17'
    }

    sourceSets {
        main.java.srcDirs += 'src/main/kotlin'
    }

    defaultConfig {
        applicationId "com.rohitkolar.townie_things"
        minSdkVersion 19
        targetSdkVersion 34
        versionCode flutterVersionCode.toInteger()
        versionName flutterVersionName
        multiDexEnabled true
    }

    buildTypes {
        release {
            signingConfig signingConfigs.debug
        }
    }
}

flutter {
    source '../..'
}

dependencies {
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.0.21"
    implementation 'com.android.support:multidex:1.0.3'
}

已排查情况

  • razorpay_flutter:1.3.7会自动依赖fluttertoast,降级razorpay版本会触发未指定namespace错误
  • Gradle插件版本高于8时出现当前错误,降级Gradle插件无法满足Play Store对SDK版本≥34的要求
  • 已执行flutter clean、flutter pub cache clean,问题未解决

解决方案尝试

1. 强制指定兼容的fluttertoast版本

在pubspec.yaml中添加fluttertoast的明确依赖,覆盖razorpay默认引入的版本,选择兼容Gradle 8+和Java 17的版本:

dependencies:
  # 其他依赖不变
  razorpay_flutter: 1.3.7
  fluttertoast: ^8.2.4 # 强制指定版本

添加后执行flutter pub get,再重新编译。

2. 修复JDK与SDK模块的兼容性

  • 检查Android Studio的JBR版本:确保使用Java 17(与项目compileOptions配置一致),可通过File > Project Structure > SDK Location查看JDK位置并确认版本
  • 重新下载Android 33 SDK平台:打开Android Studio的SDK Manager,卸载后重新安装Android 33,确保core-for-system-modules.jar文件完整无损坏
  • 尝试改用Android 34的core模块:在local.properties中添加android.sdk.platform=34,强制使用Android 34的系统模块

3. 调整Gradle配置参数

在项目根目录的gradle.properties文件中添加以下参数,解决JDK模块访问限制问题:

org.gradle.jvmargs=-Xmx2048m --add-exports=java.base/sun.nio.ch=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED

4. 彻底清理缓存

  • 删除项目根目录下的.gradle文件夹
  • 删除用户目录下的.gradle/caches文件夹(如C:\Users\<my_user_name>\.gradle\caches)
  • 执行flutter pub get和flutter run重新构建项目

5. 匹配Gradle插件与SDK版本

确保项目根目录build.gradle中的Gradle插件版本与compileSdkVersion 34兼容,推荐使用8.1.0及以上版本:

buildscript {
    repositories {
        google()
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:8.1.0'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.0"
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 01:34:59