相关疑难解决方法(0)

为什么单击网页内容中的选择标签会导致崩溃?

我有一个简单的WebView启用和WebChromeClient使用 JavaScript 的地方。我正在加载的网页内容有一个select标签。当我点击它时,应用程序崩溃并出现以下错误片段:

 android.content.res.Resources$NotFoundException: Resource ID #0x0
    at android.content.res.Resources.getValue(Resources.java:1351)
    at android.content.res.Resources.loadXmlResourceParser(Resources.java:2774)
    at android.content.res.Resources.getLayout(Resources.java:1165)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:421)
    at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:378)
    at android.widget.ArrayAdapter.getView(ArrayAdapter.java:369)
    at org.chromium.content.browser.input.SelectPopupAdapter.getView(SelectPopupAdapter.java:56)
Run Code Online (Sandbox Code Playgroud)

我找到了这个材料,但它没有帮助,我找不到这个问题的任何解决方案。据我所知,该应用程序仅在 Android 5 和 6 上崩溃。当select按下 HTML 标签时,Android 似乎会尝试显示自己的Spinner. 它使用Resources以某种方式导致错误。我尝试WebView以编程方式创建,但没有帮助。这是我的代码:

val webview = WebView(this)
    webview.layoutParams = LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT)
    rootLayout.addView(webview)
    webview.webChromeClient = WebChromeClient()
    webview.settings.javaScriptEnabled = true
    webview.loadUrl(intent.getStringExtra(URL))
Run Code Online (Sandbox Code Playgroud)

从谷歌的图书馆,我使用以下内容:

implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'com.google.android.material:material:1.1.0-beta01'
Run Code Online (Sandbox Code Playgroud)

我的问题是如何避免这个错误?也许我们可以创建自定义WebView

android webview

6
推荐指数
1
解决办法
842
查看次数

尝试在Android WebView中打开SELECT标记会导致应用程序崩溃

一个类似的问题被问大约一年前,并没有完全解决,但我会尽我的运气,无论如何,也许有人知道这一点.

我有这个应用程序在WebView中运行几个HTML页面.一切看起来都不错,工作正常,直到你试图打开一个SELECT标签 - 繁荣,应用程序崩溃.这是一个跟踪堆栈,如果这有帮助:

线程[<1> main](Suspended(异常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)行:不可用[native method]
Method.invoke(Object,Object ...)行:507
ZygoteInit $ MethodAndArgsCaller.run()行:840
ZygoteInit.main(String [])行:598 NativeStart .main(String [])行:不可用[native method]

(AlertDialog与打开选择框有什么关系超出了我.不,没有与打开警报的SELECT相关联的脚本).

现在,这是最好的部分.我正在测试2台设备上的应用程序,三星Galaxy S2与OS 2.3.3,和摩托罗拉RAZR XT910与OS 2.3.5.在三星上一切都很棒.然而,在RAZR上,上述情况发生了.

CSS和JavaScript的页面相当繁重,但即使删除了所有内容,它也会崩溃.实际上,带有单个SELECT控件的空HTML仍会崩溃.从一年前的问题中提到的一些事情,我确实尝试过:

  • 从HTML中删除所有绝对和固定定位的元素(实际上我删除了整个CSS只是为了看它是否有任何影响 - 它没有).
  • 确保SELECT是由书本编写的,没有伪造的属性/标签.

什么都没有帮助.

有没有人知道可能导致这种情况的最轻微的线索?

android html-select android-webview

5
推荐指数
2
解决办法
3158
查看次数

标签 统计

android ×2

android-webview ×1

html-select ×1

webview ×1