Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android应用程序在没有改变任何东西的情况下突然没有反应_Android_Crash - Fatal编程技术网

Android应用程序在没有改变任何东西的情况下突然没有反应

Android应用程序在没有改变任何东西的情况下突然没有反应,android,crash,Android,Crash,我有一个很奇怪的问题。我有一个带有一些图像按钮的android应用程序。当您按下imagebuttons(取决于哪个imagebutton)时,应用程序将使用JetPackNavigation导航到新片段。基本上,我已经使用这个应用程序(在开发过程中)超过4个月了,导航从来都不是问题 现在,当点击一些图像按钮时,Android Studio应用程序模拟器中的应用程序突然不再有反应。这真的很奇怪,因为我没有改变任何东西(我通过使用Android Studio的本地历史记录来确保)。此外,对于某些I

我有一个很奇怪的问题。我有一个带有一些图像按钮的android应用程序。当您按下imagebuttons(取决于哪个imagebutton)时,应用程序将使用JetPackNavigation导航到新片段。基本上,我已经使用这个应用程序(在开发过程中)超过4个月了,导航从来都不是问题

现在,当点击一些图像按钮时,Android Studio应用程序模拟器中的应用程序突然不再有反应。这真的很奇怪,因为我没有改变任何东西(我通过使用Android Studio的本地历史记录来确保)。此外,对于某些ImageButton,它仍然可以完美地工作

所以我的问题基本上是,是否有办法找出问题的原因?在logcat中,没有错误消息WhatSovere。我只在一段时间后收到一个超时报告,没有任何提示,正如您在这里看到的

2021-01-09 11:31:57.067 542-31149/? E/ActivityManager: ANR in com.example.td.barapp (com.example.td.barapp/.MainActivity)
    PID: 31101
    Reason: Input dispatching timed out (deb7f58 com.example.td.barapp/com.example.td.barapp.MainActivity (server) is not responding. Waited 5005ms for MotionEvent)
    Parent: com.example.td.barapp/.MainActivity
    Load: 0.71 / 0.83 / 1.35
    ----- Output from /proc/pressure/memory -----
    some avg10=0.00 avg60=0.00 avg300=0.00 total=46655214
    full avg10=0.00 avg60=0.00 avg300=0.00 total=3766399
    ----- End output from /proc/pressure/memory -----
    
    CPU usage from 1ms to 6375ms later (2021-01-09 10:31:50.651 to 2021-01-09 10:31:57.025):
      93% 31101/com.example.td.barapp: 75% user + 17% kernel / faults: 2812 minor
      31% 542/system_server: 3.7% user + 27% kernel / faults: 7660 minor
      6.7% 2702/com.android.systemui: 5% user + 1.7% kernel / faults: 4875 minor
      5.6% 277/android.hardware.bluetooth@1.1-service.sim: 0.1% user + 5.4% kernel
      4.7% 3858/com.google.android.gms.persistent: 2.6% user + 2% kernel / faults: 2653 minor
      0.1% 424/media.codec: 0% user + 0.1% kernel / faults: 3235 minor
      0.1% 426/media.swcodec: 0% user + 0.1% kernel / faults: 3265 minor
      2.1% 1102/com.android.phone: 0.9% user + 1.2% kernel / faults: 1428 minor
      2% 374/adbd: 0% user + 2% kernel
      1.8% 947/com.android.networkstack.process: 1.4% user + 0.4% kernel / faults: 1128 minor
      0.1% 149/logd: 0% user + 0.1% kernel / faults: 2 minor
      0.1% 410/media.extractor: 0% user + 0% kernel / faults: 1490 minor
      0.1% 1650/com.android.emulator.multidisplay: 0% user + 0% kernel / faults: 913 minor
      0% 1629/com.android.ims.rcsservice: 0% user + 0% kernel / faults: 904 minor
      1% 295/android.hardware.graphics.composer@2.3-service: 0% user + 1% kernel
      0% 1082/com.android.se: 0% user + 0% kernel / faults: 871 minor
      0% 1/init: 0% user + 0% kernel
      0.7% 10/rcu_preempt: 0% user + 0.7% kernel
      0% 2033/com.android.bluetooth: 0% user + 0% kernel / faults: 112 minor
      0% 251/tombstoned: 0% user + 0% kernel
      0.4% 363/logcat: 0% user + 0.4% kernel
      0% 30392/logcat: 0% user + 0% kernel
      0.3% 168/jbd2/vdc-8: 0% user + 0.3% kernel
      0.1% 9/ksoftirqd/0: 0% user + 0.1% kernel
      0.1% 16/ksoftirqd/1: 0% user + 0.1% kernel
      0.1% 109/kworker/1:1H-kblockd: 0% user + 0.1% kernel
      0% 153/vndservicemanager: 0% user + 0% kernel
      0.1% 266/statsd: 0% user + 0.1% kernel / faults: 47 minor
      0% 267/netd: 0% user + 0% kernel / faults: 36 minor
      0.1% 326/android.hardware.wifi@1.0-service: 0% user + 0.1% kernel
      0.1% 340/audioserver: 0.1% user + 0% kernel / faults: 41 minor
      0.1% 348/surfaceflinger: 0% user + 0.1% kernel / faults: 40 minor
      0% 383/cameraserver: 0% user + 0% kernel / faults: 43 minor
      0% 385/drmserver: 0% user + 0% kernel / faults: 40 minor
      0% 413/mediaserver: 0% user + 0% kernel / faults: 42 minor
      0.1% 421/wificond: 0% user + 0.1% kernel
      0.1% 919/android.hardware.gnss@2.0-service.ranchu: 0% user + 0.1% kernel
      0.1% 30400/kworker/u4:0-phy0: 0% user + 0.1% kernel
      0.1% 30858/kworker/0:1-events_power_efficient: 0% user + 0.1% kernel
      0% 30977/kworker/1:2-mm_percpu_wq: 0% user + 0% kernel
     +0% 31151/crash_dump32: 0% user + 0% kernel
    96% TOTAL: 55% user + 40% kernel + 0% iowait + 0.3% softirq
    CPU usage from 49ms to 796ms later (2021-01-09 10:31:50.699 to 2021-01-09 10:31:51.446):
      61% 542/system_server: 0% user + 61% kernel / faults: 287 minor
        57% 31149/AnrConsumer: 1.7% user + 56% kernel
      99% 31101/com.example.td.barapp: 99% user + 0% kernel
        99% 31101/ample.td.barapp: 99% user + 0% kernel
      4.6% 277/android.hardware.bluetooth@1.1-service.sim: 0% user + 4.6% kernel
        6.1% 1167/bluetooth@1.1-s: 0% user + 6.1% kernel
      1.5% 295/android.hardware.graphics.composer@2.3-service: 0% user + 1.5% kernel
        1.5% 349/: 0% user + 1.5% kernel
      2.1% 3858/com.google.android.gms.persistent: 0% user + 2.1% kernel
    87% TOTAL: 51% user + 36% kernel
首先,我想问一下,您是否在这个超时报告中看到任何可能导致问题的东西(我对此表示怀疑)。此外,如果你能在没有任何改变的情况下分享你在这些奇怪错误上的经验,我会很高兴。应用程序似乎进入了死锁状态或未结束循环。一般来说,您解决此类问题的方法是什么


如果您能分享您的经验,我会很高兴,我将不胜感激。

此答案是我们在评论部分讨论的综合,最终得出了解决方案

在我们在这种情况下做任何事情之前,重要的是要再次检查是否有一些我们因某种原因没有看到的变化。重要的是不要忽略这一双重检查,因为这不需要太多时间,而导致解决方案的系统方法需要大量的努力。因此,通过这种双重检查,我们可以在几乎没有风险/成本的情况下获得很多潜在收益。我个人使用git作为版本控制系统,但任何可靠地显示这种差异的系统都可以完成这项工作

看到许多不工作的图像按钮看起来势不可挡,我们需要将研究重点放在一个可管理和可理解的问题空间。因此,我们需要选择一个不工作的图像按钮,并找出它不工作的原因。如果我们幸运的话,那么解决这个问题要么会自动解决其他问题,要么会给我们一些强有力的提示。当然,我们可能会遇到多个非常不同的问题,这意味着我们需要重复这个答案中概述的过程

一个非常重要的提示是,并非所有图像按钮都显示此行为,因此我们知道问题不太可能与图像按钮有关,更可能与图像按钮上的事件触发的操作有关

一些调试和日志记录总是有帮助的。调试告诉我们发生了什么,所以如果我们进行调试,我们可能会在某个点上发现一些不良行为,这很可能就是问题本身。如果我们做一些日志记录,那么我们可以看到程序运行时发生了什么。我们可以任其一,也可以两者兼而有之

在某些情况下,没有解决办法。例如,远程工作的API可能会停止工作,这是一个无法解决的问题。在这种情况下,检测这种情况至关重要。如果没有解决办法,那么至少我们需要尽快找到答案,这样我们就不会为此操心太多

解决方案的一些步骤:

  • 将问题空间缩小到可管理的小规模(并可能为您的问题提供更多信息)
  • 很好地定义您的问题(目前您将问题链接到图像按钮,但这样做是错误的,因为某些图像按钮工作的事实推翻了图像按钮工作错误的假设)
  • 查看不可分割的工作单元,在您的案例中是行动,选择其中一个作为当前焦点,并将问题重新定义为更小的规模)
  • 记录并调试以收集信息
  • 从您收集的信息列表中计划一些实验
  • 依次尝试所有假设
  • 如果还没有找到解决方案,那么您可以从第1点重新开始。或者,您可能会决定(暂时)删除该操作,然后逐渐重新执行,直到您找到问题所在或意外地解决了问题

  • 不幸的是,你在问题中提供的信息不足以让我提供答案。然而,如果项目有任何变化,我会再次检查我是否是你。如果您使用git这样的版本控制系统,它将是一个很好的工具。接下来,我将选择一个图像按钮,并对此进行彻底的研究。您最好调试代码并向代码中添加一些日志消息,以查看最后成功执行的操作是什么。此外,您可能会遇到一些由图像按钮引发的操作,这些操作可能会等待其他资源。例如,如果您的图像按钮正在发送一个请求,并且该请求超时,那么问题甚至不在代码内部。所以:1。将问题空间缩小到一个可管理的小规模,并可能在问题2中提供更多信息。很好地定义你的问题。目前,您将问题与图像按钮联系起来,但这样做是错误的,因为某些图像按钮工作的事实推翻了图像按钮工作错误的假设。您的图像按钮工作正常。问题在于它们可能引发的一些行为。3.调查行动。选择其中一个作为当前关注点,并将问题重新定义为更小的问题。4.登录并调试以收集信息。5.从您收集的信息列表中,计划进行一些实验。6.试一下你所有的假设。7.如果你找到了解决方案,那就冷静下来。如果没有,则从第1步开始。,