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

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版本:
    sudo update-alternatives --config java
    sudo update-alternatives --config javac
    
    按提示选择已安装的JDK 11/17选项即可。

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模块依赖)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 17:10:25