EAS Android生产构建安装后首次启动崩溃问题求助
排查Galaxy设备首次启动崩溃(libjscexecutor.so加载失败)问题
核心问题定位
日志里的libjscexecutor.so加载失败和Hermes异常大概率直接关联——React Native项目中可能存在JSC与Hermes引擎的配置冲突,或是ABI架构适配不到位,导致Galaxy主流arm64-v8a架构设备首次启动时无法正确加载对应架构的引擎库。
排查与修复步骤
确认Hermes配置有效性
检查app.json/app.config.js中Hermes是否正确启用:"android": { "hermesEnabled": true, "enableDexingArtifactTransform": true }同时确保
package.json里react-native版本与Expo版本完全匹配,避免跨版本兼容性问题。锁定ABI架构适配
Galaxy设备多为arm64-v8a架构,修改eas.json的生产构建配置,指定单一ABI过滤:"build": { "production": { "android": { "gradleCommand": ":app:assembleRelease", "ndk": { "abiFilters": ["arm64-v8a"] } } } }避免多架构打包导致库文件冲突,防止系统首次启动时加载错误架构的
libjscexecutor.so。彻底清理构建缓存
执行命令清除本地及EAS远程缓存,避免旧编译产物干扰:expo prebuild --clean eas build --clear-cache检查expo-updates配置
确保更新模块配置未干扰引擎初始化:"updates": { "enabled": true, "fallbackToCacheTimeout": 0 }过长的缓存超时可能导致首次启动时引擎加载逻辑混乱。
移除冗余JSC依赖
若已启用Hermes,检查package.json是否残留react-native-jsc-android等JSC相关依赖,直接删除这类冗余包,消除引擎初始化冲突。
额外测试建议
- 用
adb安装APK并实时抓取崩溃日志:
捕捉首次崩溃的完整堆栈,确认是库加载失败还是Hermes初始化的具体异常。adb logcat *:E ReactNative:V ReactNativeJS:V - 构建Android调试版APK在Galaxy设备测试,判断问题是生产构建特有还是通用引擎加载问题。
内容的提问来源于stack exchange,提问作者Steve Kovacs
相关产品推荐
相关产品推荐

