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

使用npx expo run:android构建失败,weak_ptr与NDK异常求助

Expo Android构建失败排查方案

环境信息

  • Expo: ~51.0.8
  • React: 18.2.0
  • React Native: 0.74.1
  • 已安装NDK版本:21.4.7075529、27.0.11718014
  • SDK工具:Android SDK Build tools 35-rc4、CMake 3.22.1
  • SDK平台:Android 14.0(API34)

问题1:虚拟设备启动提示libandroid-emu-metrics.dll缺失

解决步骤

  • 打开Android Studio的SDK Manager,进入SDK Tools标签,找到Android Emulator,先卸载再重新安装最新版本
  • 检查Android SDK目录下的emulator文件夹(通常路径为%ANDROID_HOME%\emulator),确认是否存在该dll文件;若缺失,可从另一台正常运行的Android模拟器目录复制该文件,或直接下载对应版本的模拟器安装包覆盖现有目录
  • 暂时关闭杀毒软件或安全防护工具,部分软件会误删模拟器的核心动态库文件

问题2:真机/Android Studio中出现>:expo-modules-core:buildCMakeDebug[arm64-v8a] FAILED,核心错误no viable constructor or deduction guide for deduction of template of 'weak_ptr'

解决步骤

  1. 锁定兼容的NDK版本
    React Native 0.74官方指定兼容NDK版本为25.2.9519653,过旧或过新的NDK都会导致C++编译兼容问题。在项目根目录的android/build.gradle中添加以下配置强制指定版本:
buildscript {
    ext {
        ndkVersion = "25.2.9519653"
    }
    // 保留原有配置内容
}

随后打开SDK Manager,安装NDK 25.2.9519653版本

  1. 清理项目缓存并重新预构建
    执行以下命令清理缓存并重新生成Android项目文件:
npx expo prebuild --clean
cd android && ./gradlew clean
  1. 确认expo-modules-core版本匹配
    Expo 51对应的expo-modules-core版本应为~1.18.1,检查项目的package.json,确保依赖锁定该版本,若版本不符,执行:
npm install expo-modules-core@~1.18.1 --save-exact
  1. 指定CMake版本
    在android/app/build.gradle的externalNativeBuild块中明确指定CMake版本为已安装的3.22.1:
android {
    // 保留原有配置内容
    externalNativeBuild {
        cmake {
            version "3.22.1"
        }
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 04:41:00