我收到此错误:
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。
编辑:
找到解决方案,我没有运行设备监听器
答案 0 :(得分:0)
您可以使用reflection来调用窗口的方法:
getWindow().setFlags(WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED, WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);
实际上,该方法在2.2中可用,但常量值不是。您可以对它们进行硬编码或使用反射。
有关每视图硬件加速控制的详细信息,请参阅http://developer.android.com/guide/topics/graphics/hardware-accel.html。
答案 1 :(得分: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">