从Expo托管工作流Eject后Android构建失败,请求解决
Expo Eject后Android构建失败的解决方案
问题诊断
你的构建失败包含两类核心问题:
- Kotlin Gradle插件在
:expo和:expo-modules-core子项目中重复加载,违反Gradle插件加载规范 BuildConfig和R类无法找到,说明Android编译生成的辅助类未正确生成或引用
解决方案
1. 统一Kotlin Gradle插件版本,避免重复加载
修改项目根目录的build.gradle文件(不是app模块下的):
// 根目录build.gradle plugins { id 'com.android.application' version '7.4.2' apply false id 'com.android.library' version '7.4.2' apply false id 'org.jetbrains.kotlin.android' version '1.8.22' apply false // 统一指定版本并添加apply false }
随后检查:expo和:expo-modules-core子项目的build.gradle,移除其中指定Kotlin插件版本的代码,改为仅引用插件id:
// 子项目(如expo/build.gradle)中的plugins块修改为: plugins { id 'org.jetbrains.kotlin.android' // 不要添加version参数 }
2. 修复BuildConfig和R类找不到的问题
- 执行Gradle同步:在终端进入
android目录后执行:./gradlew clean ./gradlew sync - 检查
app模块的build.gradle中,applicationId是否与MainApplication.java、MainActivity.java的包名一致(你的包名为com.rahulkumarmbd.FavouritePlaces):// app/build.gradle android { defaultConfig { applicationId "com.rahulkumarmbd.FavouritePlaces" // 其他配置... } } - 确认
MainApplication.java和MainActivity.java的顶部包名声明正确:package com.rahulkumarmbd.FavouritePlaces; - 执行清理构建:
cd android ./gradlew clean build
3. 重新执行Expo构建
完成上述配置后,回到项目根目录执行:
expo run:android
内容的提问来源于stack exchange,提问作者Rahul Kumar
相关产品推荐
相关产品推荐

