当前位置: 首页 > news >正文

Android native崩溃问题分析

最近在做NDK项目的时候,出现了启动应用就崩溃了,崩溃日志如下:

10:41:04.743  A  Build fingerprint: 'samsung/g0qzcx/g0q:13/TP1A.220624.014/S9060ZCU4CWH1:user/release-keys'
10:41:04.743  A  Revision: '12'
10:41:04.743  A  ABI: 'arm64'
10:41:04.743  A  Processor: '5'
10:41:04.743  A  Timestamp: 2025-05-16 10:41:04.376681759+0800
10:41:04.743  A  Process uptime: 2s
10:41:04.743  A  Cmdline: com.virtual.video.i18n
10:41:04.743  A  pid: 22011, tid: 22112, name: DefaultDispatch  >>> com.virtual.video.i18n <<<
10:41:04.743  A  uid: 11565
10:41:04.743  A  tagged_addr_ctrl: 0000000000000001 (PR_TAGGED_ADDR_ENABLE)
10:41:04.743  A  pac_enabled_keys: 000000000000000f (PR_PAC_APIAKEY, PR_PAC_APIBKEY, PR_PAC_APDAKEY, PR_PAC_APDBKEY)
10:41:04.743  A  signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0000000000000000
10:41:04.743  A  Cause: null pointer dereference
10:41:04.743  A      x0  0000000000000000  x1  0000000000000000  x2  00000072024ba590  x3  00000072024ba578
10:41:04.743  A      x4  0000000000000000  x5  8080000000000000  x6  00000072024ba5e1  x7  7f7f7f7f7fffffff
10:41:04.743  A      x8  0000000000000000  x9  0000000000000004  x10 b40000733d478ec8  x11 fffffffffffffffc
10:41:04.743  A      x12 0000000000000004  x13 b4000072dd479cd4  x14 00000000fffffffc  x15 00000071a3bba0d0
10:41:04.743  A      x16 00000071a39ea820  x17 00000075a90049c0  x18 0000007202cc2000  x19 0000000000000000
10:41:04.743  A      x20 00000072024ba4f0  x21 00000072024ba578  x22 00000072024ba750  x23 00000072024ba5e1
10:41:04.743  A      x24 00000072024bd000  x25 00000072024bd000  x26 00000072024ba799  x27 00000072024ba751
10:41:04.743  A      x28 00000072024bd000  x29 00000072024ba4c0
10:41:04.743  A      lr  00000071a39a30a4  sp  00000072024ba4b0  pc  00000075a90049d0  pst 0000000080001000
10:41:04.743  A  backtrace:
10:41:04.743  A        #00 pc 000000000004c9d0  /apex/com.android.runtime/lib64/bionic/libc.so (__strlen_aarch64+16) (BuildId: 54071c506231d1ab2d3653b44eddcea5)
10:41:04.743  A        #01 pc 00000000000990a0  /data/app/~~1RHMqel4j5AuIl27Q6XW7Q==/com.virtual.video.i18n-WAL7gWjRDiIYE7hIiUOjPA==/lib/arm64/libc++_shared.so (std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >::assign(char const*)+24) (BuildId: fe1b5f695d356c857834778696686059de87f7f8)
10:41:04.743  A        #02 pc 000000000035e0fc  /data/app/~~1RHMqel4j5AuIl27Q6XW7Q==/com.virtual.video.i18n-WAL7gWjRDiIYE7hIiUOjPA==/lib/arm64/libwscorekit.so (NsComm::CSimpleLog::Init(std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&)+104) (BuildId: 276a833f5f553ef5dd1977429d564029b599b83e)
10:41:04.743  A        #03 pc 00000000002981a0  /data/app/~~1RHMqel4j5AuIl27Q6XW7Q==/com.virtual.video.i18n-WAL7gWjRDiIYE7hIiUOjPA==/lib/arm64/libwscorekit.so (QtLog::InitLog(int, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&)+264) (BuildId: 276a833f5f553ef5dd1977429d564029b599b83e)
10:41:04.743  A        #04 pc 000000000029877c  /data/app/~~1RHMqel4j5AuIl27Q6XW7Q==/com.virtual.video.i18n-WAL7gWjRDiIYE7hIiUOjPA==/lib/arm64/libwscorekit.so (QtLog::QtTrack_InitLog(int, char const*, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >)+172) (BuildId: 276a833f5f553ef5dd1977429d564029b599b83e)
10:41:04.743  A        #05 pc 0000000000296cbc  /data/app/~~1RHMqel4j5AuIl27Q6XW7Q==/com.virtual.video.i18n-WAL7gWjRDiIYE7hIiUOjPA==/lib/arm64/libwscorekit.so (NsQtTrack::QT_Track(int, char const*, char const*, char const*, char const*, char const*, char*)+680) (BuildId: 276a833f5f553ef5dd1977429d564029b599b83e)
10:41:04.743  A        #06 pc 0000000000297e60  /data/app/~~1RHMqel4j5AuIl27Q6XW7Q==/com.virtual.video.i18n-WAL7gWjRDiIYE7hIiUOjPA==/lib/arm64/libwscorekit.so (NsQtTrack::InnerTrack(char const*, char const*, char const*, char const*, char*)+1056) (BuildId: 276a833f5f553ef5dd1977429d564029b599b83e)
10:41:04.743  A        #07 pc 000000000021f414  /data/app/~~1RHMqel4j5AuIl27Q6XW7Q==/com.virtual.video.i18n-WAL7gWjRDiIYE7hIiUOjPA==/lib/arm64/libwscorekit.so (NsDrive::QtReport(Json::Value&)+692) (BuildId: 276a833f5f553ef5dd1977429d564029b599b83e)
10:41:04.743  A        #08 pc 000000000021f9a4  /data/app/~~1RHMqel4j5AuIl27Q6XW7Q==/com.virtual.video.i18n-WAL7gWjRDiIYE7hIiUOjPA==/lib/arm64/libwscorekit.so (BuildId: 276a833f5f553ef5dd1977429d564029b599b83e)
10:41:04.743  A        #09 pc 00000000000047f8  /data/app/~~1RHMqel4j5AuIl27Q6XW7Q==/com.virtual.video.i18n-WAL7gWjRDiIYE7hIiUOjPA==/lib/arm64/libWondershareDrive.so (Java_com_wondershare_drive_WondershareDriveApi_nativeInit+108) (BuildId: a75ca5f6e52c9bc7beb5074f928f66ff12b835f9)
10:41:04.743  A        #10 pc 0000000000461d54  /apex/com.android.art/lib64/libart.so (art_quick_generic_jni_trampoline+148) (BuildId: 4c9b59b74ca9272f710a71137164c349)
10:41:04.743  A        #11 pc 000000000020a2b0  /apex/com.android.art/lib64/libart.so (nterp_helper+4016) (BuildId: 4c9b59b74ca9272f710a71137164c349)
10:41:04.743  A        #12 pc 00000000004c1498  [anon:dalvik-classes18.dex extracted in memory from /data/app/~~1RHMqel4j5AuIl27Q6XW7Q==/com.virtual.video.i18n-WAL7gWjRDiIYE7hIiUOjPA==/base.apk!classes18.dex] (com.wondershare.drive.WondershareDriveApi.init+132)
10:41:04.743  A        #13 pc 000000000020a958  /apex/com.android.art/lib64/libart.so (nterp_helper+5720) (BuildId: 4c9b59b74ca9272f710a71137164c349)
10:41:04.743  A        #14 pc 00000000000057f2  [anon:dalvik-classes10.dex extracted in memory from /data/app/~~1RHMqel4j5AuIl27Q6XW7Q==/com.virtual.video.i18n-WAL7gWjRDiIYE7hIiUOjPA==/base.apk!classes10.dex] (com.virtual.video.app.ThirdSdkInitWrapper$initCloudStorage$1.invokeSuspend+254)
10:41:04.743  A        #15 pc 000000000020a254  /apex/com.android.art/lib64/libart.so (nterp_helper+3924) (BuildId: 4c9b59b74ca9272f710a71137164c349)
10:41:04.743  A        #16 pc 000000000012d3a6  [anon:dalvik-classes19.dex extracted in memory from /data/app/~~1RHMqel4j5AuIl27Q6XW7Q==/com.virtual.video.i18n-WAL7gWjRDiIYE7hIiUOjPA==/base.apk!classes19.dex] (kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith+42)
10:41:04.743  A        #17 pc 000000000020b120  /apex/com.android.art/lib64/libart.so (nterp_helper+7712) (BuildId: 4c9b59b74ca9272f710a71137164c349)
10:41:04.743  A        #18 pc 0000000000176398  [anon:dalvik-classes19.dex extracted in memory from /data/app/~~1RHMqel4j5AuIl27Q6XW7Q==/com.virtual.video.i18n-WAL7gWjRDiIYE7hIiUOjPA==/base.apk!classes19.dex] (kotlinx.coroutines.DispatchedTask.run+448)
10:41:04.743  A        #19 pc 000000000020b074  /apex/com.android.art/lib64/libart.so (nterp_helper+7540) (BuildId: 4c9b59b74ca9272f710a71137164c349)
10:41:04.743  A        #20 pc 00000000001b04e2  [anon:dalvik-classes19.dex extracted in memory from /data/app/~~1RHMqel4j5AuIl27Q6XW7Q==/com.virtual.video.i18n-WAL7gWjRDiIYE7hIiUOjPA==/base.apk!classes19.dex] (kotlinx.coroutines.internal.LimitedDispatcher$Worker.run+10)
10:41:04.743  A        #21 pc 000000000020b074  /apex/com.android.art/lib64/libart.so (nterp_helper+7540) (BuildId: 4c9b59b74ca9272f710a71137164c349)
10:41:04.743  A        #22 pc 00000000001b80a2  [anon:dalvik-classes19.dex extracted in memory from /data/app/~~1RHMqel4j5AuIl27Q6XW7Q==/com.virtual.video.i18n-WAL7gWjRDiIYE7hIiUOjPA==/base.apk!classes19.dex] (kotlinx.coroutines.scheduling.TaskImpl.run+6)
10:41:04.743  A        #23 pc 000000000020a254  /apex/com.android.art/lib64/libart.so (nterp_helper+3924) (BuildId: 4c9b59b74ca9272f710a71137164c349)
10:41:04.743  A        #24 pc 00000000001b716e  [anon:dalvik-classes19.dex extracted in memory from /data/app/~~1RHMqel4j5AuIl27Q6XW7Q==/com.virtual.video.i18n-WAL7gWjRDiIYE7hIiUOjPA==/base.apk!classes19.dex] (kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely+2)
10:41:04.743  A        #25 pc 000000000020a254  /apex/com.android.art/lib64/libart.so (nterp_helper+3924) (BuildId: 4c9b59b74ca9272f710a71137164c349)
10:41:04.743  A        #26 pc 00000000001b5d4a  [anon:dalvik-classes19.dex extracted in memory from /data/app/~~1RHMqel4j5AuIl27Q6XW7Q==/com.virtual.video.i18n-WAL7gWjRDiIYE7hIiUOjPA==/base.apk!classes19.dex] (kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask+34)
10:41:04.743  A        #27 pc 000000000020a254  /apex/com.android.art/lib64/libart.so (nterp_helper+3924) (BuildId: 4c9b59b74ca9272f710a71137164c349)
10:41:04.743  A        #28 pc 00000000001b5e78  [anon:dalvik-classes19.dex extracted in memory from /data/app/~~1RHMqel4j5AuIl27Q6XW7Q==/com.virtual.video.i18n-WAL7gWjRDiIYE7hIiUOjPA==/base.apk!classes19.dex] (kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker+56)
10:41:04.743  A        #29 pc 000000000020a254  /apex/com.android.art/lib64/libart.so (nterp_helper+3924) (BuildId: 4c9b59b74ca9272f710a71137164c349)
10:41:04.743  A        #30 pc 00000000001b5e28  [anon:dalvik-classes19.dex extracted in memory from /data/app/~~1RHMqel4j5AuIl27Q6XW7Q==/com.virtual.video.i18n-WAL7gWjRDiIYE7hIiUOjPA==/base.apk!classes19.dex] (kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run+0)
10:41:04.743  A        #31 pc 000000000045836c  /apex/com.android.art/lib64/libart.so (art_quick_invoke_stub+556) (BuildId: 4c9b59b74ca9272f710a71137164c349)
10:41:04.743  A        #32 pc 00000000004841e4  /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+156) (BuildId: 4c9b59b74ca9272f710a71137164c349)
10:41:04.743  A        #33 pc 0000000000483eb0  /apex/com.android.art/lib64/libart.so (art::JValue art::InvokeVirtualOrInterfaceWithJValues<art::ArtMethod*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, art::ArtMethod*, jvalue const*)+400) (BuildId: 4c9b59b74ca9272f710a71137164c349)
10:41:04.743  A        #34 pc 00000000005cc668  /apex/com.android.art/lib64/libart.so (art::Thread::CreateCallback(void*)+1680) (BuildId: 4c9b59b74ca9272f710a71137164c349)
10:41:04.743  A        #35 pc 00000000000bb6e8  /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+208) (BuildId: 54071c506231d1ab2d3653b44eddcea5)
10:41:04.743  A        #36 pc 0000000000054fdc  /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+68) (BuildId: 54071c506231d1ab2d3653b44eddcea5)

关键截图如下:
在这里插入图片描述
这时候需要借助堆栈翻译工具和带符号的so,找到对应堆栈。

工具对应的NDK目录如下:

ndk\21.4.7075529\toolchains\aarch64-linux-android-4.9\prebuilt\windows-x86_64\bin

通过查看堆栈信息:

在这里插入图片描述
可以看到发生崩溃的地址,然后使用命令:

aarch64-linux-android-addr2line.exe -e xxx.so -C -f -s 000000000035e0fc(上面标注的地址)

就可以得到结果:

NsComm::CSimpleLog::Init(std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&)

还可以多看几个:

aarch64-linux-android-addr2line.exe -e xxx.so -C -f -s 00000000002981a0

得到结果:

QtLog::InitLog(int, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&)

这样就比较容易定位的出问题的方法。

如果是在Linux系统上,还可以通过nm命令来查看符号表。

nm -D xxx.so

感谢大家的支持,如有错误请指正,如需转载请标明原文出处!

相关文章:

  • Python基础:集合(Set)
  • 今日积累:若依框架配置QQ邮箱,来发邮件,注册账号使用
  • MySQL高可用
  • Kubernetes 1.28 无 Docker 运行时环境下的容器化构建实践:Kaniko + Jenkins 全链路详解
  • Web服务器怎么压测?可用什么软件?
  • 嵌入式故障码管理系统设计实现
  • Unity3D Overdraw性能优化详解
  • CMS(plone / joomla 搭建测试)
  • 如何让 Google 收录 Github Pages 个人博客
  • Java 泛型与类型擦除:为什么解析对象时能保留泛型信息?
  • redis数据结构-12(配置 RDB 快照:保存间隔和压缩)
  • 事件响应策略规范模版
  • 宇宙中是否存在量子现象?
  • Volcano 在 Kubernetes 生态中的介绍
  • rust语言,与c,go语言一样也是编译成二进制文件吗?
  • TLS 1.3黑魔法:从协议破解到极致性能调优
  • mac的Cli为什么输入python3才有用python --version显示无效,pyenv入门笔记,如何查看mac自带的标准库模块
  • 基于Scrapy-Redis的分布式景点数据爬取与热力图生成
  • GTS-400 系列运动控制器板卡介绍(三十六)--- 电机到位检测功能
  • TCP/IP 知识体系
  • 中国纪检监察刊文:力戒形式主义官僚主义关键是要坚持实事求是
  • 消息人士称俄方反对美国代表参加俄乌直接会谈
  • 韶关一企业将消防安装工程肢解发包,广东住建厅:罚款逾五万
  • 350种咖啡主题图书集结上海,20家参展书店买书送咖啡
  • 俄外交部:俄乌伊斯坦布尔谈判改在当地时间15日下午举行
  • 最高法、证监会:常态化开展证券纠纷代表人诉讼,降低投资者维权成本