Expo项目构建报错:JvmTargetValidationMode枚举异常及编译问题求助
问题原因分析
- Kotlin与Gradle版本不兼容:报错中的
No enum constant org.jetbrains.kotlin.gradle.plugin.PropertiesProvider.JvmTargetValidationMode.WARN¦NG,核心问题是当前使用的Kotlin Gradle插件版本中不存在该枚举值——大概率是配置里的枚举值出现拼写/编码错误,或是Kotlin版本过低不支持该枚举项。JvmTargetValidationMode是Kotlin 1.8.x版本引入的配置项,若项目Kotlin版本低于此,或与Gradle版本不匹配,就会触发该错误。 - Expo模块构建配置冲突:空项目出现
未找到名为'debugAndroidTest'的KotlinJvmAndroidCompilation,说明expo-modules-core的构建脚本与当前项目的Android编译单元配置不匹配,大概率是Expo CLI版本与项目依赖的expo-modules-core版本不一致导致的。
修复方案
统一Kotlin与Gradle版本
打开项目android/build.gradle文件,修改Kotlin版本为Expo兼容的稳定版(如Expo 49+推荐1.8.20):buildscript { ext { kotlin_version = "1.8.20" } repositories { google() mavenCentral() } // ...保留其他原有配置 }同时检查
gradle/wrapper/gradle-wrapper.properties中的Gradle版本,确保与Kotlin版本兼容(Kotlin 1.8.20对应Gradle 8.0及以上):distributionUrl=https\://services.gradle.org/distributions/gradle-8.0-bin.zip修正JvmTargetValidationMode配置
排查项目中所有Gradle配置文件(android/build.gradle、android/app/build.gradle),若存在手动配置jvmTargetValidationMode的代码,检查是否有拼写/编码错误(比如错误的WARN¦NG),将其修正为合法枚举值WARNING或ERROR;若不需要该配置,可直接删除相关代码。同步Expo依赖版本
更新全局Expo CLI至最新稳定版:npm install -g expo-cli进入项目目录,执行依赖修复命令,自动对齐所有Expo相关依赖版本:
npx expo install --fix重置Android构建环境
删除Android构建缓存与生成文件:rm -rf android/.gradle android/build android/app/build重新生成Android项目配置并构建:
npx expo run:android --clean
内容的提问来源于stack exchange,提问作者Swoxy
相关产品推荐
相关产品推荐

