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

记录一次通过DeepSeek查找崩溃

app发现有一批android5.0系统的用户崩溃,打开app就会崩溃。
因为没有android5.0的测试机,所以先用android studio创建虚拟机,在运行app,果然崩溃。

backtrace:
#00 pc 000000000027e134 /system/lib64/libart.so (art:🪞:ArtMethod::IsProxyMethod()+8)
#01 pc 000000000029bd48 /system/lib64/libart.so (art::Monitor::VisitLocks(art::StackVisitor, void ()(art:🪞:Object, void), void, bool)+176)
#02 pc 00000000002fda00 /system/lib64/libart.so (art::StackDumpVisitor::VisitFrame()+604)
#03 pc 00000000002f53b0 /system/lib64/libart.so (art::StackVisitor::WalkStack(bool)+312)
#04 pc 00000000002fc300 /system/lib64/libart.so (art::Thread::DumpStack(std::__1::basic_ostream<char, std::__1::char_traits >&) const+348)
#05 pc 000000000030704c /system/lib64/libart.so (art::ThreadList::DumpLocked(std::__1::basic_ostream<char, std::__1::char_traits >&)+100)
#06 pc 00000000002ea44c /system/lib64/libart.so (art::Runtime::Abort()+444)
#07 pc 00000000000cda58 /system/lib64/libart.so (art::LogMessage::~LogMessage()+2684)
#08 pc 00000000000dbc3c /system/lib64/libart.so (art::JniAbort(char const
, char const)+2092)
#09 pc 00000000000dc448 /system/lib64/libart.so (art::JniAbortF(char const
, char const, ...)+216)
#10 pc 00000000000e1bf8 /system/lib64/libart.so (art::ScopedCheck::ScopedCheck(_JNIEnv
, int, char const)+1736)
#11 pc 00000000000e547c /system/lib64/libart.so (art::CheckJNI::NewStringUTF(_JNIEnv
, char const)+48)
#12 pc 00000000004f7fe4 /data/app/com.appname-1/lib/arm64/libcocos2dlua.so (_getClassID(char const
)+80)
#13 pc 00000000004f85c8 /data/app/com.appname-1/lib/arm64/libcocos2dlua.so (cocos2d::JniHelper::getStaticMethodInfo(cocos2d::JniMethodInfo_&, char const, char const, char const*)+104)
#14 pc 00000000004faba8 /data/app/com.appname-1/lib/arm64/libcocos2dlua.so
#15 pc 00000000005802c4 /data/app/com.appname-1/lib/arm64/libcocos2dlua.so
#16 pc 00000000007ccd28 /data/app/com.appname-1/lib/arm64/libcocos2dlua.so
#17 pc 0000000000ca443c /data/app/com.appname-1/lib/arm64/libcocos2dlua.so

把崩溃堆栈发给deepseek后,得到回答是在调用JNI方法前没有检查是否有pending exception,Java层抛出异常但native层继续调用JNI导致崩溃。
解决办法是在JNI调用前添加检查,并清除异常。
// 添加异常检查
if (env->ExceptionCheck()) {
env->ExceptionDescribe(); // 打印异常信息
env->ExceptionClear(); // 清除异常
}
加了之后确实就不崩溃了,app可以正常运行。但是异常并没有被解决,再次看log就找到了真正的问题,

java.lang.RuntimeException: Missing type parameter.
at com.google.gson.reflect.a.getSuperclassTypeParameter(SourceFile:27)
at com.google.gson.reflect.a.(SourceFile:2)
at com..PluginMgr$1.(SourceFile:1)
at com.
.PluginMgr.updateUserInfo(SourceFile:8)
at org.cocos2dx.lib.Cocos2dxRenderer.nativeRender(Native Method)
at org.cocos2dx.lib.Cocos2dxRenderer.onDrawFrame(SourceFile:11)
at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1522)
at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1239)

再次发给deppseek后,可以的是是PluginMgr内部updateUserInfo函数导致崩溃,且和Gson.TypeToken相关,此时就比较明确了,结合代码可以确认是混淆导致TypeToken异常而崩溃,添加了相关混淆配置后解决。

http://www.jsqmd.com/news/68311/

相关文章:

  • 2025年长三角轻质气泡砼厂家排名:轻质气泡混凝土靠谱厂家精
  • Windows11使用VSCode+TexLive
  • 一键采集微信文章所有数据:阅读数、留言评论、分享量、推荐量等…运营分析直接用
  • 海外直播商城源码开发趋势:从TikTok带货火爆看海外直播电商爆火背后的山东布谷鸟网络解决方案
  • 2025年冷弯压瓦机实力厂家权威推荐:三层压瓦机/彩钢压瓦设备/屋顶压瓦机源头制造商精选
  • 2025 年评价高的陕西胜东来品牌口碑好的厂家榜
  • 2025年萧山优质的GEO实力厂家哪个好,会展服务/GEO优化AI搜索/GEO服务/GEO优化服务/短视频矩阵GEO实力厂家口碑排行
  • 2025年质量好的装饰装修专业推荐榜
  • 2025年上海家装装修公司五大推荐,看哪家口碑好、收费便宜?
  • 手机短信转发软件SmsForwarder
  • 2025年四川小酥肉淀粉/豆粉(食用混合淀粉)制造企业求推荐
  • 2025年五大靠谱的网站建设企业推荐,看哪家知名度高?
  • 2025小程序专业开发制造商TOP5权威推荐:看哪家实力强?
  • 2025 年知名的陕西胜东来品牌用户口碑好评排行榜
  • 2025年度五大小程序定制开发公司推荐,专业的小程序开发与供
  • 2025 年 12 月苏州泡沫包装厂家实力推荐榜:定制异型保温箱/EPS泡沫板/环保制品,专业加工与创新设计深度解析
  • 12月9日
  • 2025年比较好的中大型机床铸件最新TOP厂家排名
  • 个人网站必备!雷池社区版WAF实测:10分钟部署,拦住99%爬虫攻击
  • 2025年12月软件开发服务商权威推荐榜:小程序开发、APP开发,匠心定制与创新技术融合之选
  • 2025年12月高速三维激光切管机(平推),全自动三维激光切管机,激光切管机厂家权威推荐,高性能,稳定性强的行业优选​
  • 2025年口碑好的氮气加热器厂家最新推荐权威榜
  • 如何把服务加到systemctl
  • 2025年12月土工布,土工膜,土工格栅厂家最新推荐,产能、专利、环保三维数据透视!
  • 2025 年 12 月色谱仪厂家权威推荐榜:气相/离子/便携式/高效色谱仪,精准分析与智能网络化技术深度解析
  • 2025年五大宁波地磅厂商排行榜,看哪家产品质量稳定
  • 2025年度国产超级电容品牌实力榜:国产超级电容哪家靠谱?
  • 2025年五大锅炉冷凝器生产厂排名,看哪家合作案例多
  • 2025年靠谱的U型加热管厂家最新用户好评榜
  • 详细介绍:C++:类和对象---进阶篇