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

Expo托管项目构建失败:JVM Target版本不兼容问题求助

解决Expo托管工作流中JVM Target冲突及依赖版本不匹配问题

一、统一JVM Target版本为11

问题根源是react-native-fusioncharts采用JVM Target 11编译字节码,而你的项目默认使用1.8,导致字节码内联冲突。通过Expo官方插件统一配置:

  • 安装配置插件:
    npx expo install expo-build-properties
    
  • 修改app.json或app.config.js,添加插件配置,强制Android项目使用JVM Target 11:
    {
      "expo": {
        "plugins": [
          [
            "expo-build-properties",
            {
              "android": {
                "jvmTarget": "11",
                // 可选:补充兼容编译版本,规避其他潜在冲突
                "compileSdkVersion": 33,
                "targetSdkVersion": 33,
                "kotlinVersion": "1.7.20"
              }
            }
          ]
        ]
      }
    }
    

二、修复Expo依赖版本不匹配

expo-cli doctor检测到的版本差异会导致构建或运行异常,按以下步骤修复:

  • 优先使用Expo自带命令自动同步依赖:
    npx expo update
    
    该命令会自动将所有Expo相关依赖更新至当前SDK对应的兼容版本,涵盖expo-modules-autolinking和@expo/config-plugins。
  • 若自动更新无效,手动修改package.json:
    • 将expo-modules-autolinking版本设为~0.10.1,@expo/config-plugins设为^5.0.0
    • 执行npm install或yarn install重新安装依赖
  • 再次运行npx expo-cli doctor确认所有依赖版本符合要求

三、重新集成react-native-fusioncharts并验证

解决上述问题后,重新集成图表库并测试:

  • 安装依赖:
    npm install react-native-fusioncharts --save
    # 或 yarn add react-native-fusioncharts
    
  • 清理构建缓存并重新构建:
    npx expo build:android -c
    
  • 本地调试时,清理Expo缓存后启动:
    npx expo start -c
    

额外提示

  • 确保你的Expo SDK版本在45及以上(JVM Target 11需要SDK 45+支持),若使用旧版本,先通过npx expo update升级至最新稳定版。
  • 若手机端仍无法运行,检查是否开启Expo Go调试模式,或尝试卸载手机端旧应用后重新安装。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 02:40:32