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

升级Expo 51与Gradle 8.7后Android构建报错求助

解决方案:Expo 51 + Gradle 8.7 Android构建错误修复

针对升级后出现的std::weak_ptr编译错误和Java编译失败问题,按以下步骤逐一解决:

1. 修复expo-modules-core的C++编译错误

该错误源于旧版本expo-modules-core在C++20标准下的语法兼容问题,Expo 51对应的版本已修复此问题:

  • 在package.json中,将expo-modules-core版本更新为**~1.12.10**(Expo 51官方兼容版本)
  • 执行npm install或yarn install重新安装依赖

2. 调整NDK版本至React Native 0.74兼容版本

当前使用的NDK 23.x不兼容React Native 0.74(Expo 51基于RN 0.74),修改android/build.gradle中的ndkVersion:

buildscript {
    ext {
        // ... 其他配置
        ndkVersion = "25.2.9519653" // 替换为RN 0.74推荐的NDK版本
    }
    // ...
}

3. 对齐Gradle插件与React Native版本

确保react-native-gradle-plugin版本与你的React Native版本(0.74.1)完全一致,避免版本不匹配导致的Java编译错误:

buildscript {
    dependencies {
        classpath('com.android.tools.build:gradle:8.7')
        classpath('com.facebook.react:react-native-gradle-plugin:0.74.1') // 明确指定RN版本对应的插件版本
    }
}

4. 更新Kotlin版本至兼容版本

Gradle 8.7需要更高版本的Kotlin支持,修改kotlinVersion:

buildscript {
    ext {
        // ... 其他配置
        kotlinVersion = '1.9.20' // Expo 51推荐的Kotlin版本
    }
}

5. 清理缓存并重新构建

  • 删除项目根目录下的node_modules、package-lock.json/yarn.lock
  • 执行npx expo prebuild --clean(仅适用于bare workflow项目)
  • 本地测试可执行./gradlew clean,EAS构建时可在构建配置中启用"清理缓存"选项

验证步骤

完成上述修改后,重新执行:

eas build --platform android

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 01:53:10