我一直在研究一个具有WebView的应用程序,其中从资产中加载静态页面(也使用JavaScript).此WebView在KitKat中不起作用,它仍然是空白的.我知道渲染引擎(webkit到chrome)的变化发生在kitkat中的WebView中,并尝试了迁移的步骤,这在Android开发者页面中给出.但它没有帮助.
在logcat中,我收到一个从Chromium源抛出的错误.
W/AwContents? nativeOnDraw failed; clearing to background color.
请建议一个解决方法.
我遇到了同样的问题,但我确实找到了解决方法.您所要做的就是为您的网页明确设置CSS背景.像这样:
body { background: white; }
事实证明,如果您没有明确设置网页的背景,WebView将无法绘制所述背景,您最终将获得透明的WebView.
就我而言,在Android 4.4中,无论我在LogCat中设置了什么和这个错误消息,我都得到了黑色背景:nativeOnDraw失败; 清除背景颜色.
从谷歌搜索,似乎是因为Chromium WebView不支持硬件加速画布渲染.我将此行添加到WebView以关闭硬件加速画布,现在它可以正常工作.
mWebview.setLayerType(View.LAYER_TYPE_SOFTWARE, null);