当前时间:Friday 2016年12月09日 欢迎访问 夜阑小雨 我的学习碎片档案,这里记录了我的学习内容和工作中经验,希望给您带去帮助。

当前位置: 首页 >> Android开发,phonegap开发 >> 正文

ANDROID “call to opengl es api with no current context”错误的解决

 

 

背景:我的项目是phoengap的项目,但是在log_Cat

查看后发现一直有错误信息:

call to OpenGL ES API with no current context (logged once per thread)

 

后来查找资料,找到了办法,需要开启硬件加速。

在应用程序AndroidManifest.xml文件添加

 android:hardwareAccelerated="true"
这样就好了,没有错误了,但是app跑起来的非常卡。。
我都郁闷了,加上硬件加速应该渲染会更好,但是变的很卡。。。
都不知道怎么办了。。
 
 
知识解析:

从Android 3.0开始,Android的2D渲染管线可以更好的支持硬件加速。硬件加速使用GPU进行View上的绘制操作。

硬件加速可以在一下四个级别开启或关闭:

Application级别

往您的应用程序AndroidManifest.xml文件为application标签添加如下的属性即可为整个应用程序开启硬件加速:

<application android:hardwareAccelerated="true" ...>
Activity级别

您还可以控制每个activity是否开启硬件加速,只需在activity元素中添加android:hardwareAccelerated属性即可办到。比如下面的例子,在application级别开启硬件加速,但在某个activity上关闭硬件加速。

<application android:hardwareAccelerated="true">
    <activity ... />
    <activity android:hardwareAccelerated="false" />
</application>
Window级别

如果您需要更小粒度的控制,可以使用如下代码开启某个window的硬件加速:

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

注:目前还不能在window级别关闭硬件加速。

View级别

您可以在运行时用以下的代码关闭单个view的硬件加速:

myView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);

注:您不能在view级别开启硬件加速

作者:夜阑小雨
原文链接:ANDROID “call to opengl es api with no current context”错误的解决
夜阑小雨版权所有,转载本网站文章时请保留此信息。

收藏和分享: 转贴到开心网 转贴到校内网 分享到 Twitter Delicious 分享到 Google Reader 分享到 百度收藏 分享到 QQ收藏

评论信息

0 条评论 发表评论

发布评论

您必须登录才能发表评论。

网站客户端下载