问题标签 [android-anr-dialog]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
12525 浏览

android - 当我的代码未出现在堆栈上时,如何解释 ANR traces.txt?

我正在尝试在我的 Android 应用程序中调试持久性 ANR(“应用程序无响应”)。

我已经阅读了这些主题:

最重要的消息是使用StrictMode,我会这样做。

但是,我仍然想解释我反复看到的 ANR 堆栈的原因。首先,我没有看到任何主线程——相反,我在主“组”中看到了许多线程,包括一个名为“waitForActivityStart”的线程。

在任何线程上我都看不到我的代码,所以我很困惑由于我自己的代码而导致此 ANR 是如何发生的。我从安装的库中看到的唯一代码是 Google Analytics (GA),您可以看到它的标题为“GAThread”。这可能是罪魁祸首吗?如果是这样,有人可以解释我如何从这份报告中推断出这一点吗?

这是我在运行 4.2.2 的 Nexus 7 上使用 ADB 提取的 traces.txt 的输出

0 投票
1 回答
86 浏览

android - 当我制作很多按钮时,Android 错误 ANR

我不明白这个问题。我的 android 应用程序需要生成自定义按钮。如果我有少于 144 个按钮但如果我生成超过 144 个按钮的按钮,它可以工作。它不能工作(强制关闭)并在这样的日志转换中显示错误.....

我敢肯定,这不是我的代码中的错误。怎么了?

0 投票
0 回答
1202 浏览

android - ANR 超时时间过长

我想我在这里有点愚蠢,但我不明白为什么我会得到错误的 ANR 超时值。示例一:

我运行此代码并在另一个视图上触发触摸事件。我将在 10 秒后获得 ANR,而我预计是 5 秒。

示例二:

同样,我运行代码并触发触摸事件。这次我根本不会得到 ANR。

关于发生了什么的任何想法?

0 投票
0 回答
563 浏览

android - 带有大型数据库的android游标加载器

我正在开发一个联系人应用程序,我需要支持大量联系人。假设用户有 10 万个联系人。

要求是 1) 具有快速滚动功能的分段列表视图 2) 使用名字或姓氏、电子邮件或电话号码搜索联系人作为用户类型

我写了一个内容提供者,我有一个有 5 列的表。

我正在使用 loadermanger 回调和来自支持库的游标加载器来查询内容提供者。

但我在表中有 50000 行时遇到了这个问题。

1)ANR - 使用此日志可能是因为游标不断分配和释放堆内存

2)从适配器中删除部分代码似乎会降低 ANR 频率,但 FASTSCROLL 仍然会导致 ANR。

3)搜索:它非常慢,我可以使用“FTS3”加快搜索速度,但这不是我的要求。我只需要在查询中使用“LIKE”或“CONTAINS”。

这不可能达到这个要求吗?谷歌的家伙是怎么做到的?

0 投票
1 回答
6040 浏览

android - 应用程序随机使用中的 ANR

我有一个 VOIP 应用程序,引擎部分是 C(NDK) 级别。在随机使用应用程序时,我以指向“在 android.os.MessageQueue.nativePollOnce(Native Method)”的 ANR 结束。
使用android-ndk-r5

ANR 跟踪:

编辑于 2013 年 5 月 6 日亚行日志

不确定此时哪个线程卡住了。这里发生了什么?

0 投票
1 回答
661 浏览

java - Android setOnKeyListener 导致 ANR (Application Not Responding) 提示

我制作了一个简单的应用程序,它遍历一个大 (1.5MB) 文本文件的所有行,并显示包含特定单词的每一行(该单词是通过 EditText 从用户接收的)。该应用程序在搜索文本文件时肯定会让我的设备承受很大的压力,但在添加下面的代码之前,我从未收到过任何 ANR 提示。现在我经常收到 ANR 提示。从应用程序中删除代码可以消除 ANR 提示。这段代码可能导致提示的原因是什么?是不是写错了?除了导致 ANR 提示之外,它工作正常。

编辑:

ANR 提示似乎是 OnKeyListener 进程无法在通过 Enter 键触发后几秒钟内完成的结果。它无法完成,因为它启动了一个耗时的资源占用过程,延迟了它的完成。解决方案是让 OnKeyListener 进程更改变量的值,而不是启动资源占用进​​程。这允许 OnKeyListener 进程立即完成,然后从其他地方启动资源占用进​​程(由变量值的更改触发)。

下面是我现在使用的代码。稍后,我将尝试制作第二个应用程序,将资源占用过程置于后台,如下面的 Simon André Forsberg 推荐的那样。

0 投票
1 回答
571 浏览

java - Android - 如何将五个变量值传递给后台线程并从中接收五个值?

简短的故事:
我需要将一些代码从我的 UI 线程中移出到后台线程中,并且我需要能够将五个变量值传递到该后台线程并从中接收五个值。我希望有人可以提供一个简单的工作示例,假设下面的代码是我的代码,而注释行之间的位是需要移动的。

更长的故事:
我的 UI 线程中的部分代码需要大约 15 秒才能完成。在此期间屏幕冻结。我不介意屏幕冻结,因为用户此时不需要与屏幕交互。问题是我也有一个OnKeyListener在我的 UI 线程中,它不赞成延迟。如果用户在 15 秒延迟期间按下任何键盘键,将导致大约 5 秒后出现 ANR(应用程序无响应)提示。我需要将耗时的代码移到可以在后台运行的单独线程中。我花了大约 13 个小时试图弄清楚如何使用 AsyncTask 和其他方法来做到这一点,但无法弄清楚如何将五个变量值传递到线程中并从中接收五个值。我希望有人可以提供一个简单的工作示例,假设下面的代码是我的代码,而注释行之间的位是需要移动的。



编辑:
这是我最终为解决这个问题所做的事情:

0 投票
0 回答
108 浏览

android - 好奇 Google Play 如何捕获和报告 ANR?

触发 ANR(应用程序无响应)时,系统是否向应用程序发送任何 API 或低级别信号?

0 投票
1 回答
178 浏览

android - 在 FragmentDialogDismiss 之后尝试加载 Activity 时出现 ANR

我有一个发送 BC 并使用 AlarmManager 等待 5 秒响应的活动。一旦我收到广播,我: 1. 使用 mDialog.dismiss() 删除 FragmentDialog;2. 使用 getActivity().startActivity(myIntent) 开始一个新的活动;

我在一个片段中(使用支持库中的 TabFragment 和我创建的 MyTabActivity)。问题是我经常出现黑屏和 ANR,如果我删除 startActivity() 行,我没有收到 ANR,片段确实被关闭,但我的活动没有显示,我得到黑屏,如果我按下它,ANR。我想到的是片段管理器开始处理活动,然后我开始了一个新的搞砸 android,因为我以片段为基础,我真的不知道如何摆脱这个烂摊子,想在活动中使用处理程序以 300 毫秒开始发布我的活动,这是一个非常非常丑陋的解决方案。有什么好主意吗?

0 投票
1 回答
653 浏览

android - 在线程转储中看到什么

我在 Google Play Market 中发布了一些应用程序,并且keyDispatchingTimedOut在我的 MainActivity 中不断收到 ANR(应用程序无响应)报告。如您所知,Google 为我提供Thread Dumps了它。我不知道如何分析它,我应该仔细看看哪个部分。

我在eclipse中使用虚拟设备测试了所有android版本的应用程序,一切正常。

这是我的线程转储中的几行,完整的列表真的很长。

任何帮助表示赞赏。