EAS Android构建失败:无Android目录及Gradle配置问题求助
解决EAS Build Android构建的两个Gradle错误
错误1:expo-screen-orientation模块找不到'maven'插件
这个问题源于Gradle 7+版本移除了旧的maven插件,改用maven-publish,而部分旧版expo-screen-orientation仍在使用旧插件ID。修复步骤:
- 优先执行版本适配:在项目根目录运行
npx expo install expo-screen-orientation,让Expo自动匹配与当前SDK兼容的模块版本,这是最稳妥的解决方式。 - 若版本兼容仍报错,手动修改
node_modules/expo-screen-orientation/android/build.gradle:
将开头的插件配置
替换为plugins { id 'maven' }plugins { id 'maven-publish' } - 为避免
npm install后修改丢失,用patch-package生成持久化补丁:- 安装依赖:
npm install patch-package --save-dev - 修改文件后执行:
npx patch-package expo-screen-orientation - 后续安装依赖时补丁会自动生效。
- 安装依赖:
错误2::expo项目未指定compileSdkVersion
这个问题是因为Expo模块的Gradle配置未正确继承项目的SDK版本设置,修复步骤:
- 打开项目根目录的
android/build.gradle,在buildscript的ext块中统一配置SDK版本(无此块则添加):buildscript { ext { compileSdkVersion = 33 // 版本需与Expo SDK对应,如SDK 49用33、SDK 50用34 targetSdkVersion = 33 minSdkVersion = 21 } // ... 其他原有配置 } - 打开
android/app/build.gradle,确保正确引用根项目的版本变量:android { compileSdkVersion rootProject.ext.compileSdkVersion // ... 其他原有配置 } - 若仍报错,检查
node_modules/expo/android/build.gradle,确认它引用了根项目的compileSdkVersion:
未配置的话,同样用android { compileSdkVersion rootProject.ext.compileSdkVersion // ... 其他原有配置 }patch-package给expo模块打补丁。
额外建议
- 构建前清理缓存:进入
android目录执行./gradlew clean,或运行npx expo prebuild --clean重新生成原生目录。 - 确保EAS CLI为最新版本:
npm install -g eas-cli
内容的提问来源于stack exchange,提问作者newbie coder
相关产品推荐
相关产品推荐

