Ubuntu下React Native编译Android报错:expo-modules-core:compileDebugJavaWithJavac
解决React Native Android构建时
:expo-modules-core:compileDebugJavaWithJavac失败的方法 以下是Ubuntu系统下针对该错误的实用解决方案:
1. 适配JDK版本
React Native搭配Expo模块时,通常要求使用JDK 11或JDK 17,版本不匹配会直接引发编译错误:
- 安装指定版本JDK:
sudo apt install openjdk-11-jdk - 切换默认JDK版本:
按提示选择已安装的JDK 11/17选项即可。sudo update-alternatives --config java sudo update-alternatives --config javac
2. 清理Gradle缓存并重构
Gradle缓存损坏或冗余文件常导致编译异常:
- 清理项目本地缓存:
cd android ./gradlew clean rm -rf .gradle - (可选)清理全局Gradle缓存:
rm -rf ~/.gradle/caches - 回到项目根目录重新安装依赖并构建:
npm install npx react-native run-android
3. 对齐expo-modules-core版本
若该模块版本与React Native/Expo SDK不兼容,会触发编译失败:
- 打开项目根目录的
package.json,找到expo-modules-core条目,修改为与当前Expo SDK匹配的版本(例如SDK 49对应~1.5.5,可参考Expo官方版本对应表)。 - 重新安装依赖:
npm install
4. 补全Android SDK组件
缺失必要的Android SDK组件会影响编译:
- 打开Android Studio的SDK Manager,确认以下组件已安装:
- Android SDK Build-Tools(需与项目
build.gradle中指定版本一致) - Android SDK Platform(匹配项目
compileSdkVersion版本) - Android NDK(部分Expo模块依赖)
- Android SDK Build-Tools(需与项目
5. 修复依赖冲突
项目依赖冲突会干扰expo-modules-core的编译:
- 查看依赖树定位冲突:
cd android ./gradlew dependencies - 在
android/app/build.gradle中添加强制依赖版本的配置,示例:configurations.all { resolutionStrategy.force 'com.android.support:support-v4:28.0.0' // 根据实际冲突的依赖调整 }
内容的提问来源于stack exchange,提问作者Tran Duc Hoa
相关产品推荐
相关产品推荐

