gpt4 book ai didi

android - 重启后黑屏

转载 作者:太空宇宙 更新时间:2023-11-03 11:14:41 25 4
gpt4 key购买 nike

在 Play 商店开发者控制台中的用户报告应用程序有一段时间未使用后,我在应用程序重新启动时遇到了一个奇怪的黑屏问题,并出现了带有非常奇怪的堆栈跟踪的 ANR:

----- pid 2704 at 2013-08-15 09:08:32 -----
Cmd line: system_server

DALVIK THREADS:
(mutexes: tll=0 tsl=0 tscl=0 ghl=0 hwl=0 hwll=0)
"main" prio=5 tid=1 NATIVE
| group="main" sCount=1 dsCount=0 obj=0x400281b8 self=0xd088
| sysTid=2704 nice=0 sched=0/0 cgrp=default handle=-1345006464
| schedstat=( 29713532638 35237133707 131286 )
at com.android.server.SystemServer.init1(Native Method)
at com.android.server.SystemServer.main(SystemServer.java:918)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(...)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:665)
at dalvik.system.NativeStart.main(Native Method)
...

并且没有涉及应用程序代码的线程。我可以在我的一个测试设备上重现它,但它非常随机,并且需要很长时间才能遇到错误。但是,如果我能够在启动应用程序后立即在设备日志中收到以下消息:

I/ActivityManager( 2704): Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.example.client.android/.ExampleMainActivity bnds=[125,494][235,632] } from pid 2908
W/ActivityManager( 2704): Receiver during timeout: BroadcastFilter{40b8b180 ReceiverList{40b8b108 32495 com.example.client.android/10107 remote:40b34b28}}
I/ActivityManager( 2704): Skipping duplicate ANR: ProcessRecord{40bfc8c0 32495:com.example.client.android/10107} Broadcast of Intent { act=android.intent.action.SCREEN_OFF flg=0x40000000 }
W/ActivityManager( 2704): Activity idle timeout for HistoryRecord{40578b78 com.example.client.android/.ExampleMainActivity}

我已经四处搜索并在 StackOverflow 上找到了以下关于这些消息的帖子:

Activity idle timeout for HistoryRecord?

Activity idle timeout for HistoryRecord

以及谷歌群组中的以下帖子:

https://groups.google.com/forum/?fromgroups#!topic/android-developers/TfkPlN5b-ig

我检查了服务,是否在 BroadcastReceivers 的 onReceive 中有任何重量级的东西,但没有找到任何东西。

我们使用 OnGlobalChangeLayoutListener,它应用了 View.invalidate() 来解决 WebView 重绘问题,这可能会导致平局-循环。我删除了它,但仍然遇到问题。

有人可能遇到同样的问题并且知道如何解决或隔离它吗?我在这里几乎没有想法,很想了解这里发生了什么。

更新

我忘了提:如果这个黑屏问题发生了,让应用程序摆脱这个问题的唯一方法是强制停止应用程序进程。否则每次我尝试启动应用程序时都会记录日志行。

更新 2

按要求更详细地描述发生的情况:黑屏非常随机地出现。它总是在应用程序启动时发生,如果发生,只有强制停止才能使应用程序脱离此状态。它似乎只有在应用程序长时间未使用并且可能被换出内存后才会发生。看起来只有 Android 2.x 设备受到影响,尽管我不确定这一点。

更新 3

我添加了一个调用 android.os.Process.killProcess(Process.myPid()); 的按钮,如果我一次又一次地调用它,我就能够在之后重现它有时,通过启动应用程序并使用按钮退出它。一段时间后(相当随机),我在使用按钮退出后得到了这个:

E/JavaBinder( 2704): !!! FAILED BINDER TRANSACTION !!!

接着是:

W/ActivityManager( 2704): Activity pause timeout for HistoryRecord{40976dd8 com.example.client.android/.ExampleMainActivity}

下次我重新启动应用程序时,我只会看到黑屏和上面提到的日志消息。我一直无法使用 android 4.1 设备重现相同的内容,只能使用两个 2.3 设备。

谷歌搜索我发现了这个:

http://androiddiscuss.com/1-android-discuss/42614.html

表明 Binder 事务缓冲区有些耗尽。我们使用使用绑定(bind)的 MediaPlayer、InApp-Billing 和 Google Cloud Messages。我删除了所有这些,但仍然遇到此错误。也许有人知道其他与隐藏的 Binder 相关的东西要检查?

最佳答案

我终于能够确定故障组件:我最近将使用的 Admob-SDK 从 6.2.1 更新到 6.4.1,并且黑屏(和 Java-Binder 消息)发生在更新之后。回滚到 6.2.1 解决了这个问题。

关于android - 重启后黑屏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18252145/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com