代码之家  ›  专栏  ›  技术社区  ›  casolorz

在我的代码中,我应该寻找多深的故障排除颧骨ANR?

  •  0
  • casolorz  · 技术社区  · 5 年前

    我的理解是 ZygoteInit 列在ANR上与应用程序的启动有关,所以我的问题是,我应该在代码中寻找多深的ANR? Application.onCreate() Activity.onCreate() ? 我应该一直走到 onResume()

    只是想说清楚 ZygotInit 在这种情况下,根本没有列出我的任何代码,我在其他线程上也看不到任何代码,但是我确实看到了像preferences这样的东西被读取,所以也许我可以这样找到罪魁祸首。下面是一个例子 https://imgur.com/JYaU9Uo

    我应该说我不能复制任何这些anr,它们只出现在Play Store控制台上。

    0 回复  |  直到 5 年前
        1
  •  0
  •   Dinesh    5 年前

    跟踪显示主线程处于“等待状态”。而等待的起始位置是在应用程序启动期间的SharedPreference访问上。这在你的踪迹的第9行很明显。

        2
  •  -1
  •   GensaGames    5 年前

    首先。 ZygoteInit 颧骨 还有很多其他的 报告。

    如果您无法复制您的问题,和/或没有链接到您的应用程序,我不确定我们是否可以进一步。 因为ANR的性质。假设它是系统的启动(同样,它与你的应用程序无关),所有的应用程序都试图使用监视器和分配资源来启动它们的服务。此时,如果系统资源不足,ANR将被发送到每个进程,这些进程正试图获取它。