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

Flutter集成Kotlin原生代码时遇JDK构建错误求助

解决Flutter集成原生代码时的Java构建错误

错误信息

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:compileDevDebugJavaWithJavac'.
> Could not resolve all files for configuration ':app: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: C:\Users\yasmitha_local\AppData\Local\Android\Sdk\platforms\android-33\core-for-system-modules.jar.
         > jlink executable C:\Program Files\Java\jdk1.8.0_301\bin\jlink.exe does not exist.

问题原因

你的Android配置中指定了使用Java 11编译,但当前系统用的是JDK 1.8版本。jlink是Java 9及以上才有的工具,JDK 1.8里没有这个文件,导致构建时无法完成JDK镜像转换任务。

相关配置代码

app/build.gradle配置

android {
    compileSdkVersion 33
    ndkVersion flutter.ndkVersion

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_11
        targetCompatibility JavaVersion.VERSION_11
    }
}

项目根目录build.gradle配置

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

    dependencies {
        classpath 'com.google.gms:google-services:4.3.13'
        classpath 'com.android.tools.build:gradle:7.1.1'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

AndroidManifest.xml片段

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="com.epic.digiface">

    <application
        tools:replace="android:label"
        android:name="${applicationName}"
        android:label="digiface"
        android:icon="@mipmap/ic_launcher">
        <activity
            android:name=".MainActivity"
            android:exported="false"
            android:launchMode="singleTop"
            android:theme="@style/LaunchTheme"

解决方案

  • 升级JDK到11或更高版本:
    1. 下载安装JDK 11(OpenJDK或Oracle JDK均可)
    2. 配置系统环境变量JAVA_HOME指向JDK 11的安装路径
    3. 在Android Studio中通过File > Project Structure > SDK Location,将JDK Location设置为JDK 11的路径
  • 调整编译选项匹配当前JDK:
    如果暂时无法升级JDK,可把compileOptions里的版本改为Java 8:
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    
    注意:此操作可能导致部分依赖不兼容,需验证项目其他组件是否支持Java 8
  • 验证Gradle插件兼容性:
    当前使用的Android Gradle插件7.1.1与JDK 11兼容,无需调整插件版本,确保JDK版本匹配即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 17:31:09