3

在我的应用程序的 WebView 中努力寻找崩溃的原因后,我发现一个非常基本的网页甚至会导致两个特定 HTC 型号上的本机 Android 浏览器崩溃。

有问题的型号是 HTC Desire HD (Android 2.3.5) 和 HTC Desire C (Android 4.0.3)。其他设备加载页面没有问题,包括其他一些 HTC 型号。

导致崩溃的 HTML:

<html>
  <body>
    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Alkmaar, Almere, Amersfoort, Amsterdam, Arnhem, Bergen op Zoom, Beverwijk, Breda, Delft, Den Bosch, Den Haag, Deurne, Deventer, Diemen, Eindhoven, Enschede, Goes, Groningen, Haarlem, Harlingen, Heemstede Hengelo, Hoorn, IJmuiden, Leeuwarden, Leiden, Nieuwegein, Nijmegen, Noordwijk, Oldenzaal, Oss, Oud-Beijerland, Purmerend, Roosendaal, Rotterdam, Scheveningen, Schiedam, Schiphol, Tiel, Utrecht, Valkenswaard, Velsen, Venray, Vlaardingen, Waalwijk, Zandvoort, Zeist en Zevenaar.</p>
  </body>
</html>

为了方便访问:http ://demos.pixplicity.com/so13121158.html

奇怪的是:如果我删除了城市(“Alkmaar, [...] Zevenaar”),或者将它们移动到段落的开头,浏览器不再崩溃。

我收集了浏览器崩溃时的 Logcat 快照,但唯一有意义的行是:

A/(7437):检测到堆栈损坏:中止

我完全不知道为什么会这样。欢迎任何建议!

4

1 回答 1

3

我对 HTC one V 也有同样的看法。

根据这个答案,“该消息表明本机堆栈损坏。使用 gcc 标志“-fstack-protector”时插入检测堆栈缓冲区溢出的代码。

所以我认为这是平台本身的一个错误。(无论如何,在我的情况下,因为我的应用程序中没有 JNI 代码)

于 2012-12-03T03:02:35.063 回答