4

この問題は、HTC Flyer に固有のものです。Honeycomb以降にアップグレードされたもの。ハードウェア アクセラレーションがオンになっている場合、WebView は空白でレンダリングされるようです。背景色が表示され、スクロールできます。テキストを強調表示したり、リンクをタップしたりすることもできますが、何も表示されません. それはすべて目に見えない。

また、次の大量のログが記録されます。

D/GLUtils(6612): GL ERROR - after drawQuad() glError (0x502)

Flyer のバグのようですが、このデバイスと WebView でハードウェア アクセラレーションをうまく使用した人はいますか?

アップデート

この問題は、アプリの最初の WebView がハードウェア アクセラレーションされていない場合に発生することがわかりました。その後、この問題が発生しない限り、それ以降の WebView はハードウェア アクセラレーションできなくなります。

再現するには:

2 つのアクティビティを作成します。各アクティビティには WebView のみを含めることができます。最初のアクティビティでは、ハードウェア アクセラレーションを無効にする必要があります。2 つ目は有効にする必要があります。

最初のアクティビティ (非ハードウェア アクセラレーション アクティビティ) で、URL を読み込みます。ページは正常に読み込まれます。ページが読み込まれて表示された後、最初のアクティビティから 2 番目のアクティビティを開始します。

2 番目のアクティビティ (ハードウェア アクセラレーションによるもの) も URL をロードする必要があります。これにより、バグが発生します。2 番目のアクティビティの WebView は空白で表示されます。

また:

奇妙なことに、次のことを行うことができ、動作します。

ハードウェア アクセラレーションと Web ビューを使用してアクティビティを開始します。URL を読み込み、それが表示されたら、ハードウェア アクセラレーションなしで 2 番目のアクティビティを開始します。次に、2 番目のアクティビティで URL を読み込み、それが表示されたら、ハードウェア アクセラレーションを使用して 3 番目のアクティビティを開始します。3 番目のアクティビティは正しく表示されます。

したがって、この問題は、アプリケーションのライフサイクル/インスタンス内で実行される最初の WebView がハードウェア アクセラレーションされていない場合にのみ発生するようです。これを行うと、後でハードウェア アクセラレーションを試みる WebView が正しく機能しなくなるようです。

繰り返しますが、このアプリが実行される何百ものデバイスのうち、これは HTC Flyer でのみ発生します。

4

1 に答える 1

1

問題を報告していただきありがとうございます。私自身のテストでは、それを発生させることができませんでした。あなたがしていることについて、もう少し詳しく教えていただけますか?

私のテストでは、assets フォルダーから index.html ファイルを表示する WebView を備えた単純な Android アプリを作成しました。targetSdkVersion を高く設定し、Android Manifest.xml で hardwareAccelerated を明示的に true に設定することで、ハードウェア アクセラレーションが有効になっていることを確認しました。私がテストした最新の Flyer では、コンテンツは正常に表示されています。

ハードウェア アクセラレーションによる Web ビューは、スクロール ビューなどの他のハードウェア アクセラレーション要素内では機能しないと聞いています。また、他の Web コンテンツの上に Web コンテンツを表示する際の同様の問題もあります。だから、仕事でも似たようなことがあるのか​​もしれません。

現在作業中のテスト プロジェクトは次のとおりです: https://github.com/lnanek/HWWebView

これが AndroidManifest.xml です:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:a="http://schemas.android.com/apk/res/android"
    パッケージ="com.htc.sample.hwwebview"
    a:versionCode="2"
    a:versionName="2.0" >
    <uses-sdk a:minSdkVersion="3" a:targetSdkVersion="15" />
    <uses-permission a :name="android.permission.INTERNET" />
    <application a:icon="@drawable/ic_launcher" a:label="@string/app_name" a:hardwareAccelerated="true" >
        <activity a:name=". Viewer" a:label="@string/app_name" >
            <intent-filter>
                <action a:name="android.intent.action.MAIN" />
                <category a:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>

主なレイアウトは次のとおりです:
<?xml version="1.0" encoding="utf-8"?>
<WebView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id= "@+id/webView"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    />

于 2012-05-30T17:55:11.550 に答える