当前位置: 首页 > 知识库问答 >
问题:

Android ANR-输入调度超时

朱岳
2023-03-14

我已经开始从许多代码位置收到几个奇怪的ANR报告(应用程序没有响应)。

at android.support.v7.app.AppCompatActivity.setContentView (AppCompatActivity.java:139)
at br.com.xxx.xxx.activities.MainActivity.onCreate (MainActivity.java:71)
at android.app.Activity.performCreate (Activity.java:6245)

MainActivity.java:71: setContentView(R.layout.activity_main);
at android.support.v4.app.BackStackRecord.replace (BackStackRecord.java:421)
at br.com.xxx.xxx.activities.MainActivity.openFragment (MainActivity.java:146)
at br.com.xxx.xxx.activities.MainActivity.openMenu (MainActivity.java:121)

                       currentFragment = new CardsFragment();
MainActivity.java:146: openFragment(currentFragment);
  at java.lang.Object.wait! (Native method)
- waiting on <0x0a7b02dc> (a java.lang.Object)
  at java.lang.Thread.parkFor$ (Thread.java:1220)
- locked <0x0a7b02dc> (a java.lang.Object)
  at sun.misc.Unsafe.park (Unsafe.java:299)
  at java.util.concurrent.locks.LockSupport.park (LockSupport.java:158)
  at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt (AbstractQueuedSynchronizer.java:810)
  at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly (AbstractQueuedSynchronizer.java:971)
  at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly (AbstractQueuedSynchronizer.java:1278)
  at java.util.concurrent.CountDownLatch.await (CountDownLatch.java:203)
  at android.app.SharedPreferencesImpl$EditorImpl$1.run (SharedPreferencesImpl.java:366)
  at android.app.QueuedWork.waitToFinish (QueuedWork.java:88)
  at android.app.ActivityThread.handleStopService (ActivityThread.java:3065)
  at android.app.ActivityThread.-wrap21 (ActivityThread.java)
  at android.app.ActivityThread$H.handleMessage (ActivityThread.java:1457)
  at android.os.Handler.dispatchMessage (Handler.java:102)
  at android.os.Looper.loop (Looper.java:148)
  at android.app.ActivityThread.main (ActivityThread.java:5443)
  at java.lang.reflect.Method.invoke! (Native method)
  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:728)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:618)
    null

共有1个答案

郑旭
2023-03-14

您的问题发生在Handler中,这意味着它发生在主线程上。您应该调用一个IO线程上的所有计费处理器方法,以避免阻塞您的主线程。

有太多可能的方法可以做到这一点,以简洁的描述。AsyncTasks、RxJava、vanilla线程、Android服务等。

 类似资料:
  • 我在android 11上有这个ANR。我无法找到任何合适的解决方案,即使通过它非常复杂的堆栈跟踪来理解。如有任何帮助,我们将不胜感激。 堆栈跟踪: # 00 PC 000000000007590 c/apex/com . Android . runtime/lib 64/bionic/libc . so(syscall 28)# 00 PC 0000000001 b067c/apex/com .

  • ANR堆栈: Java代码:dEmptyOperation类扩展自AsyncTask。refreshList方法包括一个volley post请求

  • 我有与K8s集成的集群自动缩放器,工作节点从0缩放。我希望每个节点不调度超过2个豆荚。我在库贝莱特等级上设置了吊舱限制。当我用4个吊舱并行运行5个作业时,它限制扩展3个节点,但它试图只在2个节点和一个吊舱上调度,以减少到期限制。在K8S中是否有调度限制参数?只在特定时间(一些睡眠参数)后安排豆荚?当所有工人都准备好时,我们需要等待

  • 问题内容: 这是我的代码,无法正常工作。HTML,JavaScript,PHP或CSS是否有其他方法来设置最小宽度? 我希望文本输入字段的宽度可以动态变化,以便输入字段可以围绕其内容流动。每个输入都有的内置填充,这是问题,第二个问题是根本无法处理输入。 如果我设置的宽度超出了整个程序的混乱,那么我需要的宽度是1px,仅在需要时才需要。 问题答案: 听起来您的期望是,根据文本框的内容将样式动态地应用

  • 全部的 我在Android4.4设备上面临ANR/崩溃。下面是我从设备收到的提及日志。我仍然无法调试/关联此问题。有人能帮我追踪并修复这个问题吗。 在Android。看法GLES20Canvas。android上的nDrawDisplayList(本机方法)。看法GLES20Canvas。android上的drawDisplayList(GLES20Canvas.java:420)。看法硬件开发者

  • 问题内容: 可以为用户输入设置计时器吗?等待10秒-进行下一个操作等。例如 问题答案: 不是开箱即用,不。通常,只有当另一个线程关闭基础流或到达输入的末尾时,Reader才会中断read()调用。 由于read()并非具有所有可中断性,因此这成为并发编程问题。知道超时的线程将需要能够中断正在尝试读取输入的线程。 本质上,读取线程将必须轮询Reader的ready()方法,而不是在没有要读取的内容时