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

React Native Expo预构建项目Android Studio构建失败求助

Expo AV CMake构建失败:configureCMakeDebug[arm64-v8a]任务执行错误

我有一个React Native Expo项目,执行prebuild操作后,在安装完Android Studio所有依赖后尝试运行,构建时出现如下错误:

* What went wrong:
Execution failed for task ':expo-av:configureCMakeDebug[arm64-v8a]'.
> [CXX1429] error when building with cmake using C:\Users\New2\Desktop\lfl_android\lfl-test\node_modules\expo-av\android\CMakeLists.txt: C++ build system [configure] failed while executing:
      @echo off
      "C:\\Users\\New2\\AppData\\Local\\Android\\Sdk\\cmake\\3.22.1\\bin\\cmake.exe" ^
        "-HC:\\Users\\New2\\Desktop\\lfl_android\\lfl-test\\node_modules\\expo-av\\android" ^
        "-DCMAKE_SYSTEM_NAME=Android" ^
        "-DCMAKE_EXPORT_COMPILE_COMMANDS=ON" ^
        "-DCMAKE_SYSTEM_VERSION=21" ^
        "-DANDROID_PLATFORM=android-21" ^
        "-DANDROID_ABI=arm64-v8a" ^
        "-DCMAKE_ANDROID_ARCH_ABI=arm64-v8a" ^
        "-DANDROID_NDK=C:\\Users\\New2\\AppData\\Local\\Android\\Sdk\\ndk\\23.1.7779620" ^
        "-DCMAKE_ANDROID_NDK=C:\\Users\\New2\\AppData\\Local\\Android\\Sdk\\ndk\\23.1.7779620" ^
        "-DCMAKE_TOOLCHAIN_FILE=C:\\Users\\New2\\AppData\\Local\\Android\\Sdk\\ndk\\23.1.7779620\\build\\cmake\\android.toolchain.cmake" ^
        "-DCMAKE_MAKE_PROGRAM=C:\\Users\\New2\\AppData\\Local\\Android\\Sdk\\cmake\\3.22.1\\bin\\ninja.exe" ^
        "-DCMAKE_CXX_FLAGS=-O2 -frtti -fexceptions -Wall -fstack-protector-all" ^
        "-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=C:\\Users\\New2\\Desktop\\lfl_android\\lfl-test\\node_modules\\expo-av\\android\\build\\intermediates\\cxx\\Debug\\5tc36e28\\obj\\arm64-v8a" ^
        "-DCMAKE_RUNTIME_OUTPUT_DIRECTORY=C:\\Users\\New2\\Desktop\\lfl_android\\lfl-test\\node_modules\\expo-av\\android\\build\\intermediates\\cxx\\Debug\\5tc36e28\\obj\\arm64-v8a" ^
        "-DCMAKE_BUILD_TYPE=Debug" ^
        "-DCMAKE_FIND_ROOT_PATH=C:\\Users\\New2\\Desktop\\lfl_android\\lfl-test\\node_modules\\expo-av\\android\\.cxx\\Debug\\5tc36e28\\prefab\\arm64-v8a\\prefab" ^
        "-BC:\\Users\\New2\\Desktop\\lfl_android\\lfl-test\\node_modules\\expo-av\\android\\.cxx\\Debug\\5tc36e28\\arm64-v8a" ^
        -GNinja ^
        "-DANDROID_STL=c++_shared" ^
        "-DREACT_NATIVE_DIR=C:\\Users\\New2\\Desktop\\lfl_android\\lfl-test\\node_modules\\react-native" ^
        "-DRN_SO_DIR=C:\\Users\\New2\\Desktop\\lfl_android\\lfl-test\\node_modules\\expo-av\\android\\build/react/jni"
    from C:\Users\New2\Desktop\lfl_android\lfl-test\node_modules\expo-av\android

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.
==============================================================================

已尝试的操作:

  • 更换测试设备
  • 调整Android SDK版本
  • 删除项目及依赖中的build目录
  • 清理npm/yarn缓存并重新安装依赖
  • 取消Android Studio中的CMAKE勾选
  • 创建纯React Native项目可正常运行,但Expo项目仍报相同错误

解决方案

1. 匹配NDK与CMake版本兼容性

当前日志显示使用NDK 23.1.7779620 + CMake 3.22.1,该组合可能存在兼容问题。建议:

  • 打开Android Studio SDK Manager,安装NDK 25.2.9519653(Expo官方推荐的稳定版本)
  • 同步CMake版本为3.22.1或3.18.1
  • 在项目android/local.properties中指定NDK路径:
    ndk.dir=C:\\Users\\New2\\AppData\\Local\\Android\\Sdk\\ndk\\25.2.9519653
    

2. 修改expo-av的CMake最低API版本

进入node_modules/expo-av/android/CMakeLists.txt,将android-21修改为android-24(高版本NDK对低API版本支持有限),同时添加C++标准配置:

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

3. 限制ABI架构

在android/app/build.gradle中添加ABI过滤,减少构建负担:

android {
  defaultConfig {
    ndk {
      abiFilters 'armeabi-v7a', 'arm64-v8a'
    }
  }
}

4. 彻底清理并重新预构建

执行以下命令重置项目依赖与预构建文件:

rm -rf node_modules
rm package-lock.json yarn.lock
npm install
npx expo prebuild --clean

5. 降级expo-av版本

若当前版本存在兼容性Bug,在package.json中指定稳定版本后重新安装:

"expo-av": "~13.0.4"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 08:31:12