首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RuntimeException导致ANR而不是android崩溃

RuntimeException导致ANR而不是android崩溃
EN

Stack Overflow用户
提问于 2015-07-02 09:15:11
回答 5查看 2K关注 0票数 4

我在两种情况下都得到了ANR:

代码语言:javascript
复制
throw new NullPointerException("random null pointer");

代码语言:javascript
复制
while(true){}

只有在例外情况下,VM才会实际关闭(D/AndroidRuntime:关闭VM)。

第二个问题是:如何迫使应用程序崩溃而不是ANR,并在logcat中获得堆栈跟踪?

更新从ANR和崩溃之间的区别更改标题。

更新只发生在3-4个月前.从那以后,找出崩溃的唯一方法就是在没有任何理由的情况下到处放置尝试捕捉盒。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2015-07-20 07:23:02

我面临着同样的问题,当我调试时,我到达代码“抛出RuntimeException”,但我也有一个ANR代替。

我唯一的线索是,当我在我的应用程序中配置Google时,它就开始发生了。这是你的案子吗阿尔法?

我没有超越,因为我是这样处理它,但总有一天,我会专门调试这个问题的分析。

编辑:这个问题在Google服务8.4中解决了。我们终于可以报告不公开的例外了!该应用程序似乎被封锁了几秒钟,但最终异常被抛出并在没有ANR的情况下报告。

票数 5
EN

Stack Overflow用户

发布于 2015-07-02 09:26:53

崩溃:应用程序已经停止,因为它抛出了一个未经检查的异常,所以JVM停止了。

ANR:您的应用程序停止响应,这意味着UI线程被昂贵或长时间的操作阻塞。例如,在UI线程上执行while(true){}

我不认为您有办法捕捉系统的内置机制,触发ANR对话框,这样您就可以抛出一个RuntimeException,并使您的应用程序崩溃。我不知道你为什么要这么做,最好尝试遵循这里准则,这样你就可以完全避免ANR和崩溃了。

票数 2
EN

Stack Overflow用户

发布于 2015-07-02 09:24:18

应用程序崩溃/强制关闭

http://www.quora.com/What-causes-Android-apps-to-force-close

如果应用程序占用过多的内存或处理能力,应用程序将被迫关闭(崩溃)。确保这种情况不会发生的最佳方法是编写非常高效的代码,不需要占用大量内存,并在各种设备(主要是旧设备,因为它们的内存和处理能力较低)上不断测试应用程序,这也是原因背后的原因。

ANR

http://developer.android.com/training/articles/perf-anr.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31180423

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档