此问题非常特定于 HTC Flyer。已升级到 Honeycomb 或更高版本的一种。看来,如果硬件加速已打开,那么 WebView 只会呈现空白。背景颜色出现,您可以滚动。您甚至可以突出显示文本或点击链接,但您什么也看不到。这一切都是看不见的。
它还记录了大量以下内容:
D/GLUtils(6612): GL ERROR - after drawQuad() glError (0x502)
看起来像是 Flyer 的一个错误,但有没有人成功地在这个设备和 WebView 上使用了硬件加速?
更新
我发现这个问题是由于应用程序的第一个 WebView 没有硬件加速造成的。然后,如果不发生此问题,任何进一步的 WebView 都将无法进行硬件加速。
重现:
创建两个活动。每个活动中只能有一个 WebView。第一个活动应该禁用硬件加速。第二个应该启用它。
在第一个活动(非硬件加速活动)中,加载一个 url。该页面将正常加载。现在,在页面加载并显示后的某个时间,从第一个活动开始第二个活动。
第二个活动(硬件加速的活动)也应该加载一个 url。这将导致错误发生。第二个活动的 WebView 将显示为空白。
还:
奇怪的是,您可以执行以下操作,它会起作用:
使用硬件加速和 web 视图启动活动。加载一个 url 并在它显示后,在没有硬件加速的情况下启动第二个活动。然后在第二个活动中,加载一个 url,然后在它显示后,使用硬件加速启动第三个活动。第三个活动将正确显示。
所以这个问题似乎只有在应用程序生命周期/实例中运行的第一个 WebView 没有硬件加速时才会发生。似乎如果您这样做,那么以后尝试进行硬件加速的任何 WebView 都将无法正常工作。
同样,在运行此应用程序的数百台设备中,这只发生在 HTC Flyer 上。