Expo项目Gradle构建失败,请求排查expo-splash-screen编译错误
解决Expo安卓项目Gradle构建失败及JS变量未声明警告
一、处理:expo-splash-screen:compileReleaseKotlin构建失败
该错误源于expo-splash-screen模块的Kotlin方法签名与依赖框架不匹配,或模块版本和Expo SDK版本不兼容,按以下步骤排查:
强制适配SDK的依赖版本
执行npx expo install expo-splash-screen,该命令会自动安装与当前Expo SDK版本匹配的expo-splash-screen,直接规避版本不兼容导致的方法签名问题。清理全链路缓存
- 删除本地依赖缓存并重新安装:
rm -rf node_modules package-lock.json yarn.lock npm install - 清除Expo项目缓存:
expo r -c - 进入项目
android目录,清理Gradle缓存:./gradlew clean ./gradlew cleanBuildCache
- 删除本地依赖缓存并重新安装:
统一Kotlin版本配置
打开项目根目录的android/build.gradle文件,确保ext.kotlin_version与Expo SDK要求一致(例如Expo SDK 49+对应1.8.22),修改后重新构建:buildscript { ext { kotlin_version = "1.8.22" } // 其他原有配置 }
二、解决JS变量未声明警告
这类警告多为代码规范问题或全局变量未显式声明导致,按以下方式修复:
修复本地代码变量声明
对照警告提示的文件和行号,确保所有使用的变量都通过var/let/const声明,避免隐式创建全局变量。配置ESLint允许合法全局变量
如果是Expo内置或第三方库的全局变量(如__DEV__)未被ESLint识别,在项目的.eslintrc.js(或.eslintrc.json)中添加全局变量声明:{ "globals": { "__DEV__": true, "Expo": true } }批量检测修复代码
执行以下命令,让ESLint自动检测并修复可自动修复的未声明变量问题:npx eslint . --fix
内容的提问来源于stack exchange,提问作者Arun Jojo
相关产品推荐
相关产品推荐

