构建Expo Bare Flow安卓应用时遭遇expo-modules-core CMake配置错误
解决Expo Bare Flow安卓构建时的
:expo-modules-core:configureCMakeDebug[arm64-v8a]错误及StackOverflowError 1. 调整JVM堆内存参数
java.lang.StackOverflowError多因Gradle构建时JVM内存分配不足引发,修改内存配置:
- 打开项目根目录下的
android/gradle.properties - 修改
org.gradle.jvmargs参数,示例:org.gradle.jvmargs=-Xmx4096m -Xss2m -XX:MaxMetaspaceSize=512m - 保存后重新执行构建命令
2. 匹配CMake版本
CXX1429错误通常和CMake版本不兼容有关,统一使用Expo官方推荐版本:
- 打开Android Studio的SDK Manager,切换到
SDK Tools标签,安装3.22.1版本的CMake - 在
android/build.gradle中指定CMake版本:buildscript { ext { cmakeVersion = "3.22.1" } // 其他原有配置... } - 在
android/app/build.gradle的externalNativeBuild块中绑定版本:android { // 其他原有配置... externalNativeBuild { cmake { path "CMakeLists.txt" version project.ext.cmakeVersion } } }
3. 彻底清理缓存后重建
缓存残留可能导致异常,执行以下命令彻底清理:
# 清理Gradle本地缓存 ./gradlew clean rm -rf ~/.gradle/caches # 清理Node依赖和Expo预构建文件 rm -rf node_modules yarn install npx expo prebuild --clean # 重新构建安卓项目 yarn android
4. 确认Java版本兼容性
Expo模块对Java版本有明确要求,推荐使用Java 11:
- 执行
java -version检查当前版本,若不符则切换 - 可通过Android Studio的
File > Project Structure > SDK Location配置项目使用的JDK版本
5. 降级Expo Modules Core版本
如果是新版本expo-modules-core引入的问题,尝试降级到稳定版本:
- 修改
package.json中的依赖版本,例如:"expo-modules-core": "~1.11.0" - 重新安装依赖并预构建:
yarn install npx expo prebuild --clean yarn android
内容的提问来源于stack exchange,提问作者mashebe
相关产品推荐
相关产品推荐

