【问题标题】:ANR Crash while debugging application调试应用程序时 ANR 崩溃
【发布时间】:2020-06-27 23:38:56
【问题描述】:

我创建了一个应用程序,它运行良好。但有时当我调试我的应用程序时,设备会锁定。然后当我解锁设备时它崩溃并显示ANR(活动无响应)。我查看了 logcat,但无法从那里获得任何线索。所以请帮我解决这个问题。我的logcat如下:

03-16 16:54:46.117: E/ActivityManager(114): ANR in in.plackal.lovecyclesfree
03-16 16:54:46.117: E/ActivityManager(114): Reason: Broadcast of Intent {    act=android.intent.action.SCREEN_OFF flg=0x40000000 }
03-16 16:54:46.117: E/ActivityManager(114): Load: 1.49 / 1.23 / 1.28
03-16 16:54:46.117: E/ActivityManager(114): CPU usage from 5083ms to 0ms ago:
03-16 16:54:46.117: E/ActivityManager(114):   2.5% 114/system_server: 1.5% user + 0.9% kernel / faults: 3 minor
03-16 16:54:46.117: E/ActivityManager(114):   0% 14/kondemand/0: 0% user + 0% kernel
03-16 16:54:46.117: E/ActivityManager(114):   0% 49/file-storage: 0% user + 0% kernel
03-16 16:54:46.117: E/ActivityManager(114):   0.1% 182/com.android.systemui: 0.1% user + 0% kernel
03-16 16:54:46.117: E/ActivityManager(114): 2.9% TOTAL: 2.1% user + 0.7% kernel
03-16 16:54:46.117: E/ActivityManager(114): CPU usage from 212ms to 723ms later:
03-16 16:54:46.117: E/ActivityManager(114):   7.2% 114/system_server: 1.8% user + 5.4% kernel
03-16 16:54:46.117: E/ActivityManager(114):     7.2% 130/ActivityManager: 1.8% user + 5.4% kernel
03-16 16:54:46.117: E/ActivityManager(114):     1.8% 121/SurfaceFlinger: 1.8% user + 0% kernel
03-16 16:54:46.117: E/ActivityManager(114):   1.4% 182/com.android.systemui: 1.4% user + 0% kernel
03-16 16:54:46.117: E/ActivityManager(114): 3.8% TOTAL: 1.9% user + 1.9% kernel

【问题讨论】:

  • 你把断点放在哪里了?在 onReceive() 里面?
  • 不,我没有 onRecieve 方法,我把它放在活动的 start() 方法上
  • 您找到解决此问题的方法了吗?我也有同样的问题。
  • 同样的问题有什么解决办法吗?

标签: android android-anr-dialog


【解决方案1】:

显然某些东西锁定了 UI 线程。如果是您的代码导致了问题,请务必进行诊断。

  1. 使用 Activity 创建新项目什么都不做。
  2. 启动新项目并进行调试。
  3. 锁屏并解锁
  4. 看看是否还会发生崩溃

如果是。所以问题应该出在操作系统和其他应用程序中。 如果手机上没有重要数据,请将手机恢复出厂设置,然后重试。

如果没有。问题出在你的代码中。查看“OnResume”或“OnStart”之类的代码,找出死锁循环或网络阻塞等等。

【讨论】:

  • 是的,错误仅在我的代码中。实际上在我的代码 onStart() 方法中,我读取了使用文件存储的所有数据,并通过使用这些数据更新 mu UI。但是,如果我评论该代码并再次开始调试,那么也会发生崩溃,并且这种崩溃仅在应用程序调试时发生,而不是在它运行时发生。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多