1

このエラーが発生します:

E/libEGL(11261): call to OpenGL ES API with no current context (logged once per thread)

私は可能な解決策が使用することであることがわかりました

android:hardwareAccelerated="true"

しかし、問題は、Android2.2以上でアプリを実行したいということです。

その設定をに追加するとAndroidManifest.xml、エラーが発生するためコンパイルされません。

デバイスのバージョンに基づいてそのオプションを有効にする方法はありますか、または別のソリューションを使用する可能性がありますか?

私はphonegapを使用しています。

編集:

解決策が見つかりました、私はdevicereadyリスナーを実行していませんでした

4

2 に答える 2

0

これで試してみてください。

 if (Build.VERSION.SDK_INT > Build.VERSION_CODES.HONEYCOMB) {
getWindow().setFlags(
                    WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED,
                    WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);
    (your view)view.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
    }

AndroidManifest.xml

  <application
        android:hardwareAccelerated="true">
于 2013-02-05T05:42:52.557 に答える
0

これは、リフレクションを使用してウィンドウのメソッドを呼び出すことで実行できます。

getWindow().setFlags(WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED, WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);

実際、このメソッドは2.2で使用できますが、定数値は使用できません。それらをハードコーディングするか、リフレクションを使用できます。

ビューごとのハードウェアアクセラレーション制御の詳細については、http://developer.android.com/guide/topics/graphics/hardware-accel.htmlを参照してください。

于 2013-02-05T05:32:52.333 に答える