1

我收到此错误:

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

我发现一个可能的解决方案是使用

android:hardwareAccelerated="true"

但问题是我想在 android 2.2 上运行该应用程序。

如果我将该设置添加到AndroidManifest.xml,它将无法编译,因为它会给出错误。

有没有办法根据设备版本启用该选项,或者使用不同的解决方案?

我正在使用phonegap。

编辑:

找到了解决方案,我没有运行 deviceready 监听器

4

2 回答 2

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 回答
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 回答