【问题标题】:Debugging Android 2.3 browser crashes调试 Android 2.3 浏览器崩溃
【发布时间】:2012-11-02 04:22:41
【问题描述】:

最近,我一直试图找出(并希望修复)影响 SB Nation 博客网络的频繁的 Android 2.3 浏览器崩溃。用户将导航到页面,它似乎正在加载,然后大约当您期望 DOM 完成触发时,浏览器似乎强制关闭,您被踢到主屏幕。并非每次页面加载都会发生这种情况,因此如果您打开浏览器并重试,通常会正常加载。

我在自己的手机上多次重现了这个问题,HTC Thunderbolt (2.3.4) 和 Droid Bionic (2.3.4)。我没有 Android 开发经验,但我认为连接 adb 调试器可能会让我对这个问题的原因有所了解。以下是我捕获的一些崩溃日志:

(我会在生产环境中发布一些导致这些崩溃的 URL,但我已经达到了两个链接的限制。)

您可能会注意到,所有 HTC 日志都不同,而 Bionic 似乎并没有提供太多技术细节。这是我在所有 HTC 日志中发现的唯一共同点:

 D/skia    (14225): createPlugin (300,150) screen proportion:(w,h)=(0.813008,0.039288), content ratio:2.000000 mainUrl:http://athleticsnation.local:3000/
 D/skia    (14225): createPlugin F10 typical2 video content (300,150)/(369,3818), url=

我的猜测是 F10 == Flash 10,但 Droid Bionic 甚至没有安装 Flash,所以我不相信这是原因。

无论如何,我对导致这些崩溃的原因一无所知。有没有办法获得有关这些崩溃的更准确信息?无效标记会导致浏览器崩溃吗? JavaScript 限制?任何帮助将不胜感激。

【问题讨论】:

  • 如果您在模拟器上运行了链接,那么 logcat 输出是什么(将其添加到问题中)。另外不要忘记启用 console.log() stackoverflow.com/questions/5538516/…
  • 在这两种情况下,浏览器都被信号 11 (Segmentation fault) 杀死,这意味着本机浏览器库执行了类似于 NullPointerException 的操作。这并不是通过糟糕的标记和任何网络内容来实现的,但由于提到了插件和视频,它可能与(HTML5?)视频有关。 skia btw 是二维图形/绘图库。
  • @MorrisonChang 我在 2.3.3 模拟器中重新创建崩溃的尝试到目前为止都没有成功。如果我设法在那里重现,我会发布一个 logcat。
  • @zapl 段错误位是有道理的。我想知道这是否是浏览器错误,而这些页面上的某些东西正在加剧这个问题。这些页面上没有
  • @clifff 是的,segfault 将是由您的内容以某种方式触发的浏览器错误(甚至是设备上发生副作用的随机事件)。如果可以的话,它应该显示一个空白/损坏的页面或类似的东西。关于模拟器:模拟器和真机有很多不同,所以可能无法在模拟器上重现这个bug。

标签: android debugging android-browser


【解决方案1】:

可能值得看看 allowed_geolocation_origins() 周围的位置权限(和异常处理):

来自 HTC 转储:

10: W/ContentService(1646): binderDied() at ObserverNode name allowed_geolocation_origins

【讨论】:

  • 好收获!但是,我不明白网页如何导致 allowed_geolocation_origins 出现问题,这似乎是 part of the core Android API. 据我所知,我们并没有尝试在这些页面上使用 HTML5 地理定位或任何东西,这是我唯一的链接能想到。也许是红鲱鱼?
  • 很难说 - 至少加载了 8 个 js 库(包括广告网络、Twitter、Facebook、Google 分析)、相当数量的损坏标记和 4 个隐藏帧,每个都包括复杂的第 3 方库。请参阅:imgur.com/WUKRnimgur.com/7YRPV
  • 即使您的页面没有位置请求,浏览器也必须观察允许的位置设置以进行更改。这意味着它可能是相关的,但不是必须的。当通过活页夹连接到另一个进程的进程崩溃时,您会收到活页夹死亡警告。我会说警告是崩溃的结果,而不是原因
猜你喜欢
  • 1970-01-01
  • 2013-11-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多