Android KitKat中的WebView渲染问题

gnu*_*anu 38 android webview chromium android-4.4-kitkat

我一直在研究一个具有WebView的应用程序,其中从资产中加载静态页面(也使用JavaScript).此WebView在KitKat中不起作用,它仍然是空白的.我知道渲染引擎(webkit到chrome)的变化发生在kitkat中的WebView中,并尝试了迁移的步骤,这在Android开发者页面中给出.但它没有帮助.

在logcat中,我收到一个从Chromium源抛出的错误.

W/AwContents? nativeOnDraw failed; clearing to background color.

请建议一个解决方法.

geo*_*sey 44

就我而言,在Android 4.4中,无论我在LogCat中设置了什么和这个错误消息,我都得到了黑色背景:nativeOnDraw失败; 清除背景颜色.

从谷歌搜索,似乎是因为Chromium WebView不支持硬件加速画布渲染.我将此行添加到WebView以关闭硬件加速画布,现在它可以正常工作.

mWebview.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
Run Code Online (Sandbox Code Playgroud)

  • 您在webview中没有播放html5视频,因为您通过设置LAYER_TYPE_SOFTWARE关闭了硬件加速画布. (2认同)

Dat*_*ino 6

我遇到了同样的问题,但我确实找到了解决方法.您所要做的就是为您的网页明确设置CSS背景.像这样:

body {
  background: white;
}
Run Code Online (Sandbox Code Playgroud)

事实证明,如果您没有明确设置网页的背景,WebView将无法绘制所述背景,您最终将获得透明的WebView.