React Native发布版后台重启崩溃(SIGABRT/JNI空对象错误)
React Native发布版SIGABRT崩溃排查指南
问题核心信息
- 崩溃信号:
SIGABRT - 关联文件:
split_config.arm64_v8a.apk!libreanimated.so - 触发方法:
facebook::jni::JObject::getClass() const - 触发场景:后台重启应用时,先冻结随即崩溃
- 关键报错:
JNI DETECTED ERROR IN APPLICATION: java_object == null
已排除的排查方向
- 确认项目无直接或间接依赖
react-native-reanimated,卸载相关包后崩溃问题仍持续
针对性排查建议
- 扫描第三方JNI依赖:排查所有涉及原生JNI交互的第三方SDK(如地图、推送、支付类),重点检查后台状态恢复时的JNI对象持有逻辑,是否存在空对象引用未处理的情况
- 解析完整崩溃栈:提取完整的Native线程崩溃日志,定位到调用
getClass()的具体JNI代码路径,锁定问题模块 - 复现场景调试:在开发环境模拟后台重启流程(如通过开发者选项强制终止进程后重启),用Android Studio的LLDB工具跟踪JNI对象的生命周期,确认空对象产生的时机
- 核对RN版本兼容性:检查当前React Native版本是否存在已知的JNI空引用bug,尝试升级至稳定版或回退到无崩溃记录的历史版本
- 检查打包配置:确认Android ABI拆分(
split_config)配置是否正确,排查so文件加载异常导致的JNI对象初始化失败问题
内容的提问来源于stack exchange,提问作者Rain
相关产品推荐
相关产品推荐

