npx expo run:android执行失败求助(默认模板无修改)
解决Expo构建Android应用时expo-modules-core的CMake兼容库错误
问题场景
使用Expo创建默认模板应用(未修改任何代码),执行以下步骤后构建失败:
- 执行
npx expo create-expo-app@latest ./创建项目 - 通过
adb connect ip:5555连接安卓设备 - 执行
npx expo run:android启动构建
出现错误如下:
> Task :expo-modules-core:configureCMakeDebug[arm64-v8a] FAILED FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':expo-modules-core:configureCMakeDebug[arm64-v8a]'. > [CXX1210] /home/balpreet/Projects/ledgo-expo/node_modules/expo-modules-core/android/CMakeLists.txt debug|arm64-v8a : No compatible library found * 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. > Get more help at https://help.gradle.org. BUILD FAILED in 2m 16s 299 actionable tasks: 160 executed, 139 from cache Error: /home/balpreet/Projects/ledgo-expo/android/gradlew app:assembleDebug -x lint -x test --configure-on-demand --build-cache -PreactNativeDevServerPort=8081 -PreactNativeArchitectures=arm64-v8a,armeabi-v7a exited with non-zero code: 1 Error: /home/balpreet/Projects/ledgo-expo/android/gradlew app:assembleDebug -x lint -x test --configure-on-demand --build-cache -PreactNativeDevServerPort=8081 -PreactNativeArchitectures=arm64-v8a,armeabi-v7a exited with non-zero code: 1 at ChildProcess.completionListener (/home/balpreet/Projects/ledgo-expo/node_modules/@expo/spawn-async/build/spawnAsync.js:42:23) at Object.onceWrapper (node:events:634:26) at ChildProcess.emit (node:events:519:28) at maybeClose (node:internal/child_process:1105:16) at ChildProcess._handle.onexit (node:internal/child_process:305:5) ... at spawnAsync (/home/balpreet/Projects/ledgo-expo/node_modules/@expo/spawn-async/build/spawnAsync.js:7:23) at spawnGradleAsync (/home/balpreet/Projects/ledgo-expo/node_modules/@expo/cli/build/src/start/platforms/android/gradle.js:96:48) at assembleAsync (/home/balpreet/Projects/ledgo-expo/node_modules/@expo/cli/build/src/start/platforms/android/gradle.js:74:18) at runAndroidAsync (/home/balpreet/Projects/ledgo-expo/node_modules/@expo/cli/build/src/run/android/runAndroidAsync.js:45:37)
解决方案
检查并升级CMake版本
执行cmake --version查看当前版本,Expo要求CMake版本至少为3.18,建议升级到3.22.x或官方推荐的兼容版本。如果版本过低,通过Android Studio的SDK Manager或系统包管理器升级。清理项目构建缓存
执行以下命令清理缓存后重新构建:npx expo prebuild --clean npx expo run:android指定单一架构构建
尝试只针对当前设备的架构构建(比如arm64-v8a),避免多架构兼容问题:npx expo run:android --device --arch arm64-v8a检查Android SDK组件
打开Android Studio的SDK Manager,确保已安装对应版本的NDK(建议25.x版本)和CMake组件,并且NDK路径已正确配置到环境变量或项目的local.properties文件中。降级expo-modules-core版本
在项目的package.json中指定稳定版本的expo-modules-core,例如:"expo-modules-core": "1.11.1"执行
npm install更新依赖后,重新运行构建命令。
内容的提问来源于stack exchange,提问作者Balpreet Singh
相关产品推荐
相关产品推荐

