这个问题非常适合HTC Flyer。已经升级到Honeycomb或更高版本的产品。看来如果打开硬件加速,则WebView只会呈现空白。出现背景颜色,您可以滚动。您甚至可以突出显示文本或点按链接,但您看不到任何内容。这一切都是看不见的。
它还记录了大量以下内容:
D/GLUtils(6612): GL ERROR - after drawQuad() glError (0x502)
看起来像Flyer的一个错误,但有没有人成功地使用此设备和WebView进行硬件加速?
更新
我发现当应用的第一个WebView不是硬件加速时会导致此问题。然后,如果没有出现此问题,任何其他WebView都将无法进行硬件加速。
重现:
创建两个活动。每个活动都可以包含WebView。第一个活动应禁用硬件加速。第二个应该启用它。
在第一个活动(非硬件加速的活动)中,加载网址。该页面将加载正常。现在,在页面加载并显示后的某个时间,从第一个开始第二个活动。
第二个活动(硬件加速的活动)也应加载网址。这将导致错误发生。第二个活动'WebView将显示空白。
此外:
奇怪的是,您可以执行以下操作,它将起作用:
使用硬件加速和webview开始活动。加载URL并在显示后,启动第二个活动而不进行硬件加速。然后在第二个活动中,加载一个URL,然后在显示后,使用硬件加速启动第三个活动。第三个活动将正确显示。
因此,只有在Application的生命周期/实例内部运行的第一个WebView不是硬件加速时,才会出现此问题。看来,如果你这样做,那么后来尝试硬件加速的任何WebView将无法正常工作。
同样,在这个应用程序运行的数百个设备中,这只发生在HTC Flyer上。
答案 0 :(得分:1)
感谢您报告此问题。我无法在自己的测试中发现它。你能提供一些关于你在做什么的更多细节吗?
在我的测试中,我使用WebView创建了一个简单的Android应用程序,该应用程序显示了其assets文件夹中的index.html文件。我确保启用了硬件加速,既可以使用高的targetSdkVersion,也可以在Android Manifest.xml中将hardwareAccelerated显式设置为true。内容在我测试的更新Flyer中显示正常。
我听说过硬件加速网页视图无法在其他硬件加速元素中运行,例如滚动视图,以及在其他网页内容之上显示网页内容的类似问题。所以也许它可能就像工作中那样。
以下是目前正在运行的测试项目: https://github.com/lnanek/HWWebView
以下是AndroidManifest.xml:
<?XML版本= “1.0” 编码= “UTF-8” >
<清单的xmlns:一个= “http://schemas.android.com/apk/res/android”
包= “com.htc.sample.hwwebview”
一个:的versionCode = “2”
一个:的versionName = “2.0” >
<使用-SDK一个:的minSdkVersion = “3” 的:targetSdkVersion = “15”/>
<使用-权限的:名称= “android.permission.INTERNET对”/>
<应用一个:图标= “@绘制/ ic_launcher” 一个:标签= “@串/ APP_NAME” 一个:硬件加速= “真” >
<酶活性的:名称= “查看器。” 一个:标签= “@串/ APP_NAME” >
<意图滤光器>
<作用一个:名称= “android.intent.action.MAIN”/>
<类别:名称= “android.intent.category.LAUNCHER”/>
< /意图滤光器>
< /活性GT;
< /应用程序>
< /清单>
这是主要布局:
<?XML版本= “1.0” 编码= “UTF-8” >
< web视图
的xmlns:机器人= “http://schemas.android.com/apk/res/android”
机器人:ID = “@ + ID / web视图”
机器人:layout_width = “FILL_PARENT”
机器人:layout_height = “FILL_PARENT”
/>