当我调试时,应用程序遇到断点,我可以正常调试一段时间。一段时间后,Android显示ANR对话框,但我仍然可以正常调试。
如果我不点击手机屏幕,调试就会结束,所以调试时我需要一直盯着屏幕,这很烦人,而且真的浪费我的时间,因为有时对话框会每 10 秒弹出一次。
我不知道是什么原因造成的。我尝试重新启动机器、电话、ADB,并且已经尝试在 AndroidManifest 上使用 debuggable="true",但没有成功。
看起来问题出在后台运行的服务上。
我的服务每 5 分钟执行一次后台任务,因此如果断点“暂停”主线程,服务会尝试运行并显示“无响应”弹出窗口。十秒钟后,如果我们仍然处于断点处,系统会一遍又一遍地显示烦人的弹出窗口。
需要说明的是,我的服务没有问题,看起来是 IntelliJ IDEA 调试的方式。当我需要调试一些大的东西时,我禁用了调试服务,并且弹出窗口没有出现。
我不知道是否有办法让 IDE 意识到它没有响应,因为我们正在调试主线程,因为这应该是正确的解决方案。
对于那些偶然发现这个问题寻找解决方案的人来说,@FedeH 的评论为我做到了:
您可以在开发者选项下选择您的应用程序作为调试应用程序。这可能有助于减少不需要的系统警报。