Flutter项目运行报错:Java编译器(1.8.0_242-release)异常求助
解决方案:Java编译器MODULE属性异常处理
核心原因
这个错误本质是JDK版本不兼容:你本地配置的JDK 19和项目实际调用的Java编译器(1.8.0_242)版本不匹配,高版本JDK生成的注解包含低版本编译器无法识别的MODULE属性,直接导致编译崩溃。
具体修复步骤
1. 统一项目JDK版本
打开项目根目录下的android/gradle.properties文件,添加或修改以下配置:
org.gradle.java.home=/path/to/your/jdk1.8
替换为你本地JDK 1.8的实际安装路径,比如Windows路径可能是C:\Program Files\Java\jdk1.8.0_242,Mac/Linux可能是/Library/Java/JavaVirtualMachines/jdk1.8.0_242.jdk/Contents/Home
2. 适配Gradle插件与版本
打开项目根目录的build.gradle(注意是根目录的,不是app模块的),调整Gradle插件版本以匹配Flutter 3.7.3:
dependencies { classpath 'com.android.tools.build:gradle:7.4.2' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.7.20" }
同时修改gradle/wrapper/gradle-wrapper.properties中的distributionUrl:
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip
3. 强制指定Java编译版本
打开android/app/build.gradle,在android代码块内添加:
compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } kotlinOptions { jvmTarget = '1.8' }
4. 清理缓存并重新构建
依次执行以下命令清理缓存:
flutter clean cd android && ./gradlew clean cd .. && flutter pub get
之后重新运行项目:flutter run
额外排查点
- 检查本地环境变量
JAVA_HOME是否指向JDK 1.8,避免Gradle读取错误的JDK路径 - 确认项目第三方依赖是否使用了高版本JDK编译的库,必要时替换为兼容JDK 1.8的版本
内容的提问来源于stack exchange,提问作者Faizan Kamal
相关产品推荐
相关产品推荐

