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

签名APK仅在三星J6的NDK代码中崩溃的技术求助

三星J6设备上NDK代码崩溃排查求助

背景

我开发的一款商业应用已在Google Play上架约一年,因旧ActionBar标签/ViewPager+Fragments方案被弃用,升级至API34并采用Toolbar/TabLayout/ViewPager2+FragmentStateAdapter新架构。升级后:

  • Android Studio中运行表现良好,性能提升;
  • 所有模拟器及数据线连接的实体设备均正常运行;
  • 发布到Google Play的新bundle版本,在大部分实体设备和带Google Play的模拟器上运行正常,但在三星J6(SM-J600FN)设备上打开工作文件时会崩溃。

崩溃日志

2024-02-14 02:28:35.383 17422-17422 [myapp] se.[mydomain].[myapp].[myapp] D CheckActive -1 / 1 - 1 1010
2024-02-14 02:28:35.383 17422-17422 [myapp] se.[mydomain].[myapp].[myapp] D CheckActive -1 / 1 - 1 1020
2024-02-14 02:28:35.383 17422-17422 [myapp].Rosett se.[mydomain].[myapp].[myapp] W 0xebadde09 skipped times: 0
2024-02-14 02:28:37.012 17422-17422 [myapp].Rosett se.[mydomain].[myapp].[myapp] W 0xebadde09 skipped times: 0
2024-02-14 02:28:37.012 17422-17422 libc se.[mydomain].[myapp].[myapp] A Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x594d2d59 in tid 17422 ([myapp].[myapp]), pid 17422 ([myapp].[myapp])
2024-02-14 02:28:37.217 18639-18639 DEBUG pid-18639 A pid: 17422, tid: 17422, name: [myapp].[myapp] > > > se.[mydomain].[myapp].[myapp] <<<
2024-02-14 02:28:37.994 18639-18639 DEBUG crash_dump32 A #00 pc 004a1c76 /data/app/se.[mydomain].[myapp].[myapp]-9JjQztNsGJZagQkfzm3yRA==/base.apk!libAndroid[myapp].so (offset 0x4174000) (LListGetFirstRecordData+20) (BuildId: 19096f2d2d09e4b8936ad2ee91916033257eda0e)
2024-02-14 02:28:37.994 18639-18639 DEBUG crash_dump32 A #01 pc 004ac061 /data/app/se.[mydomain].[myapp].[myapp]-9JjQztNsGJZagQkfzm3yRA==/base.apk!libAndroid[myapp].so (offset 0x4174000) (CheckActive+1012) (BuildId: 19096f2d2d09e4b8936ad2ee91916033257eda0e)
2024-02-14 02:28:37.994 18639-18639 DEBUG crash_dump32 A #02 pc 004b4205 /data/app/se.[mydomain].[myapp].[myapp]-9JjQztNsGJZagQkfzm3yRA==/base.apk!libAndroid[myapp].so (offset 0x4174000) (TabOptimisation+448) (BuildId: 19096f2d2d09e4b8936ad2ee91916033257eda0e)
2024-02-14 02:28:37.994 18639-18639 DEBUG crash_dump32 A #03 pc 00451e93 /data/app/se.[mydomain].[myapp].[myapp]-9JjQztNsGJZagQkfzm3yRA==/base.apk!libAndroid[myapp].so (offset 0x4174000) (InitMainView+206) (BuildId: 19096f2d2d09e4b8936ad2ee91916033257eda0e)
2024-02-14 02:28:37.994 18639-18639 DEBUG crash_dump32 A #04 pc 004520a5 /data/app/se.[mydomain].[myapp].[myapp]-9JjQztNsGJZagQkfzm3yRA==/base.apk!libAndroid[myapp].so (offset 0x4174000) (Java_se_[mydomain]_[myapp]_JniManagement_InitMainView+316) (BuildId: 19096f2d2d09e4b8936ad2ee91916033257eda0e)
2024-02-14 02:28:37.994 18639-18639 DEBUG crash_dump32 A #05 pc 0001fc33 /data/app/se.[mydomain].[myapp].[myapp]-9JjQztNsGJZagQkfzm3yRA==/oat/arm/base.odex (art_jni_trampoline+162)
2024-02-14 02:28:37.995 18639-18639 DEBUG crash_dump32 A #13 pc 003432f6 /data/app/se.[mydomain].[myapp].[myapp]-9JjQztNsGJZagQkfzm3yRA==/oat/arm/base.vdex (se.[mydomain].[myapp].v0.j+58)
2024-02-14 02:28:37.995 18639-18639 DEBUG crash_dump32 A #16 pc 0033f494 /data/app/se.[mydomain].[myapp].[myapp]-9JjQztNsGJZagQkfzm3yRA==/oat/arm/base.vdex (se.[mydomain].[myapp].JniManagement.f+284)
2024-02-14 02:28:37.995 18639-18639 DEBUG crash_dump32 A #19 pc 002f8172 /data/app/se.[mydomain].[myapp].[myapp]-9JjQztNsGJZagQkfzm3yRA==/oat/arm/base.vdex (n5.r.f+490)
2024-02-14 02:28:37.995 18639-18639 DEBUG crash_dump32 A #22 pc 00340228 /data/app/se.[mydomain].[myapp].[myapp]-9JjQztNsGJZagQkfzm3yRA==/oat/arm/base.vdex (se.[mydomain].[myapp].MainActivity.onActivityResult+680)
---------------------------- PROCESS STARTED (18641) for package se.[mydomain].[myapp].[myapp] ----------------------------
2024-02-14 02:28:39.814 2880-3994 BufferQueueProducer surfaceflinger E [Application Error: se.[mydomain].[myapp].[myapp]#0] disconnect: not connected (req=1)
---------------------------- PROCESS ENDED (17422) for package se.[mydomain].[myapp].[myapp] ----------------------------
---------------------------- PROCESS ENDED (18641) for package se.[mydomain].[myapp].[myapp] ----------------------------

异常特征

  • 崩溃发生在逻辑无问题的循环中,仅读取和更新结构体中的int、void*等数据;
  • 相同代码在之前的循环中处理相同数据时无异常;
  • 打开不同工作文件时,会在不同的无问题代码位置崩溃,疑似NDK堆损坏。

应用架构

核心功能由NDK实现,包含命令接口和虚拟屏幕;工作文件打开后传入NDK模块生成虚拟界面,再将界面内容复制到Java层的LinearLayout(每行含多个TextView,类似Excel表格)。该C代码在其他Android设备、iOS及Windows平台对应应用中均运行正常。

已排查内容

  • 三星TabA SM-T590(Kernel 3.18.124)无问题,三星J6(Kernel 3.18.140)系统版本相近;
  • J6设备无其他应用崩溃问题,剩余存储空间6.4GB,内存1.5GB,应用仅占用约200MB内存,最高占用40%CPU;
  • 未发现后台应用干扰;
  • 设备登录的Google账号与测试设备不同,推测不会影响。

求助问题

为何该应用仅在三星J6设备上出现NDK代码崩溃?

内容的提问来源于stack exchange,提问作者Jan Bergström

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 04:21:05