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
相关产品推荐
相关产品推荐

