【发布时间】:2012-02-09 14:58:25
【问题描述】:
大约一年前有人问过similar question,但还没有完全解决,但无论如何我还是要试试运气,也许有人知道这一点。
我有一个在 WebView 中运行几个 HTML 页面的应用程序。一切看起来都不错并且工作正常,直到您尝试打开 SELECT 标记 - 繁荣,应用程序崩溃。 这是一个跟踪堆栈,如果有帮助的话:
线程 [ main](暂停(异常 WindowManager$BadTokenException)) AlertDialog(Dialog).show() 行:247
WebView$InvokeListBox.run() 行:7841
WebView$PrivateHandler(Handler).handleCallback(Message) 行:587
WebView$PrivateHandler(Handler).dispatchMessage(Message) 行:92
Looper.loop() 行:130 ActivityThread.main(String[]) 行:3859
Method.invokeNative(Object, Object[], Class, Class[], Class, int, boolean) 行:不可用 [本机方法]
Method.invoke(Object, Object...) 行:507
ZygoteInit$MethodAndArgsCaller.run() 行:840
ZygoteInit.main(String[]) 行:598 NativeStart.main(String[]) 行:不可用 [本机方法]
(AlertDialog 与打开选择框有什么关系超出了我的理解。不,没有与打开警报的 SELECT 关联的脚本)。
现在,这是最好的部分。我正在 2 台设备上测试该应用程序,即带有 OS 2.3.3 的三星 Galaxy S2 和带有 OS 2.3.5 的摩托罗拉 RAZR XT910。在三星上,一切都很好。然而,在 RAZR 上,会发生上述情况。
这些页面包含大量 CSS 和 JavaScript,但即使删除所有内容也会崩溃。事实上,带有单个 SELECT 控件的空 HTML 仍然会崩溃。 一年前的问题中提到的一些我确实尝试过的事情:
- 从 HTML 中删除所有绝对和固定定位元素(实际上我删除了整个 CSS 只是为了看看它是否有任何效果 - 它没有)。
- 确保 SELECT 是按规定编写的,没有虚假属性/标签。
没有任何帮助。
有人知道是什么原因造成的吗?
【问题讨论】:
-
在 Android 中,下拉菜单不会“下拉”(至少在 ICS 之前),它们会在 AlertDialog 内的列表中显示选项,这就是它的来源。唉,我不知道为什么会出现这个问题。
-
您应该发布您的 HTML(或示例)以查看是否有人能发现可能导致崩溃的内容。您尝试过更简单的 SELECT 吗?
-
看起来很简单,一个WebView需要简单多少的控件才能起作用?我的意思是,同一个 WebView 处理了相当繁重的 CSS 和 JS 动画等等,一切都很好。
-
是的,这看起来很简单。老实说,我期待奇怪的字符或类似的东西:)。这是否在 webview 之外工作,例如在浏览器应用中?
-
无处不在,除了 RAZR 上该死的 WebView。
标签: android android-webview html-select