首页 > 解决方案 > 崩溃记录的“java.lang.RuntimeException”仅在 android 8.1 (API 27) 中发生,堆栈跟踪未指向我们的代码,如何调试?

问题描述

最近,我们的应用在 Google Play 控制台上记录了多次崩溃,这种情况发生在各种设备上,但仅限于使用 android 8.1 (SDK 27) 的设备上。

此崩溃的堆栈跟踪如下所示:

java.lang.RuntimeException: 
  at android.app.ActivityThread.performLaunchActivity (ActivityThread.java:3006)
  at android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:3084)
  at android.app.ActivityThread.-wrap11 (Unknown Source)
  at android.app.ActivityThread$H.handleMessage (ActivityThread.java:1781)
  at android.os.Handler.dispatchMessage (Handler.java:106)
  at android.os.Looper.loop (Looper.java:210)
  at android.app.ActivityThread.main (ActivityThread.java:7080)
  at java.lang.reflect.Method.invoke (Native Method)
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:523)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:863)
  at .CPU
  at .26
  at .14
  at .13

如何使用这些有限的信息来追踪问题的根本原因,因为没有一行引用来自应用程序的代码?有什么方法可以重现这个吗?使用 SDK 27 的模拟器没有发现错误。

注意:有问题的应用程序是在 android studio 上使用 Java 开发的

标签: androidcrash-reports

解决方案


随着您的异常消息,RuntimeExceptionwithUnknown Source发生在method can not be found by reflection.

以我的经验,这个问题通常是在第三方 sdk 上引起的,有些method被称为可能是obsoleted on specified Android versionnot support on specified device(例如Mi、<em>Samsung .. 等)。

这里给你一些建议,希望对你有帮助。

  1. 检查崩溃报告以找出其他共同点(例如移动制造商),这将很有帮助。
  2. 尝试将大部分依赖项升级到最新版本
  3. 尝试使用您的依赖项搜索此异常。

推荐阅读