You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter Android发布版split_config.arm64_v8a.apk SIGSEGV崩溃求助

Flutter Android发布版ARM64架构SIGSEGV崩溃排查方案

问题概述

  • 仅Android发布版出现崩溃,开发构建版本无此问题
  • 仅影响少量用户
  • 未集成Crashlytics,现有崩溃信息如下:

Play商店错误标题

[split_config.arm64_v8a.apk]
SIGSEGV

崩溃回溯信息

backtrace:
  #00  pc 0x0000000000085094  /apex/com.android.runtime/lib64/bionic/libc.so (__memcpy+292)
  #01  pc 0x000000000061c278  /data/app/~~rl7ZWwW2NDGA5rRb9K9nEA==/{PACKAGE_IDENTIFIER}-OBaHBkLOrFpnjTcok9CC8w==/split_config.arm64_v8a.apk
  #02  pc 0x00000000001d20a8  /data/app/~~rl7ZWwW2NDGA5rRb9K9nEA==/{PACKAGE_IDENTIFIER}-OBaHBkLOrFpnjTcok9CC8w==/split_config.arm64_v8a.apk
  #03  pc 0x00000000001d369c  /data/app/~~rl7ZWwW2NDGA5rRb9K9nEA==/{PACKAGE_IDENTIFIER}-OBaHBkLOrFpnjTcok9CC8w==/split_config.arm64_v8a.apk
  #04  pc 0x00000000001e1c00  /data/app/~~rl7ZWwW2NDGA5rRb9K9nEA==/{PACKAGE_IDENTIFIER}-OBaHBkLOrFpnjTcok9CC8w==/split_config.arm64_v8a.apk
  #05  pc 0x0000000000601fb0  /data/app/~~rl7ZWwW2NDGA5rRb9K9nEA==/{PACKAGE_IDENTIFIER}-OBaHBkLOrFpnjTcok9CC8w==/split_config.arm64_v8a.apk
  #06  pc 0x00000000001da6a4  /data/app/~~rl7ZWwW2NDGA5rRb9K9nEA==/{PACKAGE_IDENTIFIER}-OBaHBkLOrFpnjTcok9CC8w==/split_config.arm64_v8a.apk
  #07  pc 0x00000000001dde94  /data/app/~~rl7ZWwW2NDGA5rRb9K9nEA==/{PACKAGE_IDENTIFIER}-OBaHBkLOrFpnjTcok9CC8w==/split_config.arm64_v8a.apk
  #08  pc 0x000000000185105c  /data/app/~~rl7ZWwW2NDGA5rRb9K9nEA==/{PACKAGE_IDENTIFIER}-OBaHBkLOrFpnjTcok9CC8w==/split_config.arm64_v8a.apk
  #09  pc 0x000000000184f37c  /data/app/~~rl7ZWwW2NDGA5rRb9K9nEA==/{PACKAGE_IDENTIFIER}-OBaHBkLOrFpnjTcok9CC8w==/split_config.arm64_v8a.apk
  #10  pc 0x000000000184d6dc  /data/app/~~rl7ZWwW2NDGA5rRb9K9nEA==/{PACKAGE_IDENTIFIER}-OBaHBkLOrFpnjTcok9CC8w==/split_config.arm64_v8a.apk
  #11  pc 0x000000000191c240  /data/app/~~rl7ZWwW2NDGA5rRb9K9nEA==/{PACKAGE_IDENTIFIER}-OBaHBkLOrFpnjTcok9CC8w==/split_config.arm64_v8a.apk
  #12  pc 0x0000000000952c9c  /data/app/~~rl7ZWwW2NDGA5rRb9K9nEA==/{PACKAGE_IDENTIFIER}-OBaHBkLOrFpnjTcok9CC8w==/split_config.arm64_v8a.apk
  #13  pc 0x0000000000952bc0  /data/app/~~rl7ZWwW2NDGA5rRb9K9nEA==/{PACKAGE_IDENTIFIER}-OBaHBkLOrFpnjTcok9CC8w==/split_config.arm64_v8a.apk
  #14  pc 0x00000000002af964  /data/app/~~rl7ZWwW2NDGA5rRb9K9nEA==/{PACKAGE_IDENTIFIER}-OBaHBkLOrFpnjTcok9CC8w==/split_config.arm64_v8a.apk
  #15  pc 0x00000000002bd828  /data/app/~~rl7ZWwW2NDGA5rRb9K9nEA==/{PACKAGE_IDENTIFIER}-OBaHBkLOrFpnjTcok9CC8w==/split_config.arm64_v8a.apk
  #16  pc 0x00000000001deaa8  /data/app/~~rl7ZWwW2NDGA5rRb9K9nEA==/{PACKAGE_IDENTIFIER}-OBaHBkLOrFpnjTcok9CC8w==/split_config.arm64_v8a.apk
  #17  pc 0x000000000056984c  /data/app/~~rl7ZWwW2NDGA5rRb9K9nEA==/{PACKAGE_IDENTIFIER}-OBaHBkLOrFpnjTcok9CC8w==/split_config.arm64_v8a.apk
  #18  pc 0x00000000005699c4  /data/app/~~rl7ZWwW2NDGA5rRb9K9nEA==/{PACKAGE_IDENTIFIER}-OBaHBkLOrFpnjTcok9CC8w==/split_config.arm64_v8a.apk
  #19  pc 0x0000000000206b70  /data/app/~~rl7ZWwW2NDGA5rRb9K9nEA==/{PACKAGE_IDENTIFIER}-OBaHBkLOrFpnjTcok9CC8w==/split_config.arm64_v8a.apk
  #20  pc 0x0000000000207d30  /data/app/~~rl7ZWwW2NDGA5rRb9K9nEA==/{PACKAGE_IDENTIFIER}-OBaHBkLOrFpnjTcok9CC8w==/split_config.arm64_v8a.apk
  #21  pc 0x0000000000207d70  /data/app/~~rl7ZWwW2NDGA5rRb9K9nEA==/{PACKAGE_IDENTIFIER}-OBaHBkLOrFpnjTcok9CC8w==/split_config.arm64_v8a.apk
  #22  pc 0x0000000000207fb4  /data/app/~~rl7ZWwW2NDGA5rRb9K9nEA==/{PACKAGE_IDENTIFIER}-OBaHBkLOrFpnjTcok9CC8w==/split_config.arm64_v8a.apk
  #23  pc 0x00000000003399fc  /data/app/~~rl7ZWwW2NDGA5rRb9K9nEA==/{PACKAGE_IDENTIFIER}-OBaHBkLOrFpnjTcok9CC8w==/split_config.arm64_v8a.apk
  #24  pc 0x0000000000351a6c  /data/app/~~rl7ZWwW2NDGA5rRb9K9nEA==/{PACKAGE_IDENTIFIER}-OBaHBkLOrFpnjTcok9CC8w==/split_config.arm64_v8a.apk
  #25  pc 0x000000000043dd54  /apex/com.android.art/lib64/libart.so (art_quick_generic_jni_trampoline+148)
  #26  pc 0x000000000020a2b0  /apex/com.android.art/lib64/libart.so (nterp_helper+4016)
  #27  pc 0x0000000002041094  /memfd:jit-cache

崩溃原因分析

  1. SIGSEGV与内存复制错误:崩溃触发点在__memcpy函数,说明是内存访问越界,大概率是Native层(Flutter引擎或第三方Native插件)在执行内存复制操作时,访问了非法的内存区域。
  2. 发布版/ARM64特定问题:开发构建无此问题,说明是发布版编译优化(AOT编译、混淆、资源裁剪)导致的内存布局异常;仅ARM64架构触发,指向架构特定的编译逻辑或代码兼容问题。
  3. 少量用户影响:可能与特定Android版本、设备硬件特性,或者用户特定操作场景(如大资源加载、高并发操作)相关。

排查与解决步骤

1. 符号化崩溃回溯

当前回溯仅显示内存地址,无法定位具体函数,需用工具解析:

  • 找到发布版构建生成的app-arm64-v8a-release.unstripped.so文件,路径通常为build/app/intermediates/merged_native_libs/release/out/lib/arm64-v8a/
  • 使用Android NDK的addr2line工具解析地址,命令示例:
    addr2line -f -C -e app-arm64-v8a-release.unstripped.so 0x0061c278
    
    将回溯中所有split_config.arm64_v8a.apk对应的内存地址逐个解析,得到具体函数名和代码位置。

2. 验证编译优化影响

临时关闭部分发布版优化,逐步排查:

  • 在android/app/build.gradle中禁用混淆:minifyEnabled false
  • 禁用资源裁剪:shrinkResources false
  • 编译发布版时添加参数关闭部分Flutter优化:flutter build apk --release --no-tree-shake-icons --no-shrink
  • 若崩溃消失,逐步恢复优化项,定位具体引发问题的优化逻辑。

3. 排查第三方Native插件

  • 检查项目中使用的第三方插件,尤其是涉及ARM64架构的Native插件,查看是否存在已知的内存泄漏或越界问题。
  • 暂时移除可疑插件,重新构建发布版测试,确认是否由插件导致崩溃。

4. 复现与调试

  • 在ARM64架构的真机上运行发布版,模拟用户操作场景,尝试复现崩溃。
  • 临时集成Crashlytics,获取更详细的崩溃上下文(设备信息、操作步骤、线程状态)。

5. 内存相关代码检查

  • 检查Flutter代码中涉及Native交互的部分(如MethodChannel、PlatformView),确保参数传递、内存管理逻辑正确。
  • 排查是否存在大内存操作(如位图加载、文件读写),确认是否存在内存泄漏或溢出情况。

内容的提问来源于stack exchange,提问作者Abdelrahman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 08:47:21