Android Studio提示No build variant found for ':expo'错误求助
报错修复方案
No variants found for ':expo'报错和SDK是否下载完整、清理缓存操作没有直接关联,核心是Gradle解析expo模块时没有匹配到符合配置的构建变体,按以下步骤逐一排查修复:
检查
settings.gradle引入配置
打开项目根目录下的settings.gradle文件,确认存在expo模块的正确引入配置,缺失则补充:include ':expo' project(':expo').projectDir = new File(rootProject.projectDir, '../node_modules/expo/android')同时检查你用到的expo-camera等其他expo子模块的引入路径,确保相对路径和node_modules内的实际文件位置一致。
对齐版本适配关系
你当前的配置存在明确的版本不匹配问题:- 你使用的Android Gradle插件版本为
4.2.2,该版本最高支持compileSdkVersion 30,和你配置的compileSdkVersion = 31不兼容 - 如果你使用的是Expo SDK 44及更低版本,本身最高仅支持compileSdkVersion 30,直接将配置里的
compileSdkVersion值改为30即可 - 如果你使用的是Expo SDK 45及更高版本,需要将Android Gradle插件版本升级到7.0及以上,同时对应升级Gradle wrapper版本到7.0+,才能正常支持compileSdkVersion 31
- 你使用的Android Gradle插件版本为
解决构建变体冲突
如果你在app模块的build.gradle中配置了productFlavors(比如区分华为、谷歌发布渠道),expo模块默认没有对应渠道的变体,会直接触发该报错。在app模块的build.gradle中添加以下配置,统一依赖的变体匹配规则:android { // 已有的其他配置保持不变 configurations.all { resolutionStrategy { force 'com.facebook.react:react-native:+' } } }注意:你引入的谷歌服务、华为AGC插件仅需要在app模块下apply,不要在其他依赖模块中重复应用,避免插件干扰变体生成。
修复依赖缺失问题
排除node_modules依赖安装不全的问题,在项目根目录执行以下命令重装依赖:rm -rf node_modules npm install cd android ./gradlew clean执行完成后重新同步Gradle即可正常构建。
内容的提问来源于stack exchange,提问作者Mohammad Ayyad
相关产品推荐
相关产品推荐

