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

expo run:android报错compileSdkVersion未指定问题求助

问题根因

这个报错的核心不是你没在顶层build.gradle配置compileSdkVersion,是当前项目的构建配置和Expo模块的构建要求不匹配:

  • 你当前配置的compileSdkVersion = 29版本过低,新版本Expo SDK最低要求compileSdkVersion >=33
  • 你使用的Android Gradle Plugin 4.1.0版本过旧,和新版Expo的构建逻辑不兼容,导致:expo子项目无法读取到根项目ext中定义的Sdk版本参数
  • 你当前安装的Java 8版本不满足高版本AGP的运行要求,会导致构建配置阶段的参数读取逻辑异常
  • 你之前只清理了全局Gradle缓存,没有清理项目本地的构建缓存,旧的异常构建缓存会干扰配置读取
解决步骤

按顺序执行以下操作即可修复:

  • 替换顶层build.gradle中ext块的Sdk版本配置,将版本升级到符合Expo要求的数值:
ext {
    buildToolsVersion = "33.0.0"
    minSdkVersion = 21
    compileSdkVersion = 33
    targetSdkVersion = 33
}
  • 升级Android Gradle Plugin版本,把buildscript.dependencies下的classpath配置替换为:
classpath("com.android.tools.build:gradle:7.4.2")
  • 替换本地Java环境:卸载当前的Java 8,安装JDK 11并配置好JAVA_HOME环境变量,终端执行java -version确认输出为11.x版本后再进行后续操作。
  • 全量清理构建缓存,依次执行以下命令:
    • 进入项目根目录,删除安卓项目本地构建缓存:rm -rf android/.gradle android/build android/app/build
    • 清理全局Gradle缓存:rm -rf ~/.gradle/caches
    • 重装项目依赖避免原生链路配置异常:rm -rf node_modules && npm install
  • 如果你的android目录是通过expo prebuild自动生成的,先执行expo prebuild --clean重新生成原生安卓目录,避免手动修改的配置被Expo的构建逻辑覆盖。
  • 最后重新执行expo run:android命令即可正常构建。

注意:如果你的项目是Expo托管项目(原生目录为自动生成),不要长期手动修改build.gradle文件,推荐安装expo-build-properties插件统一配置原生构建参数,避免下次执行prebuild时手动修改的配置被覆盖。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 12:39:15