cocos2d-x android:opengl error 0502问题

首先出现这个问题在android上非常普遍,基本都是因为游戏切换到主界面再切回来造成的,出现在cocos2d-x 2.1.3-2.1.5这些版本最多。

出现这个问题的原因有以下几点:

1、长时间锁屏切回

2、home切出切回

3、使用notification切回

这里1、2可能跟内存有关,建议在onpause的时候清除缓存,注意不要在主线程意外的地方让游戏切回。

3这个问题是因为今天我刚好遇到比较深刻,其实就是在notification切回的时候没有回到游戏的activity造成的,出错的代码如下:

Notification notification = new
Notification(R.drawable.icon, getText(R.string.app_name), System.currentTimeMillis());

Intent notificationIntent =
new Intent(this, MainActivity.class);

PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);

notification.setLatestEventInfo(this, getText(R.string.app_name), getText(R.string.heart_push),
contentIntent);

notice.notify(NOTICE_TAG, notification);

而正确的方式应该是这样

Notification notification = new
Notification(R.drawable.icon, getText(R.string.app_name), System.currentTimeMillis());

Intent notificationIntent =
new Intent(this, MainActivity.class);

notificationIntent.setAction(Intent.ACTION_MAIN);

notificationIntent.addCategory(Intent.CATEGORY_LAUNCHER);

PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);

notification.setLatestEventInfo(this, getText(R.string.app_name), getText(R.string.heart_push),
contentIntent);

notice.notify(NOTICE_TAG, notification);

关键在于两行红色的代码,就解决了这个问题。

时间: 2024-10-20 11:18:13

cocos2d-x android:opengl error 0502问题的相关文章

Android OpenGL ES 应用(一)

OpenGL已经成了3D的一个"标准" 因为它能跨平台,接口也比较丰富,几乎大部分的手机3D游戏都和OpenGL有关系. 当然还有微软有direct X 但只能在微软平台上使用. OpenGL底层是c/c++实现,JAVA中使用都是用封装好的类库.Android提供了以下几个接口包 可使用,基本能达到3D技术的要求. Android平台用OpenGL ES 这个子集来处理图像,现在OpenGL ES基本用2.0的了,很少再用1.0的,3.0还未流行起来. 首先编写判断Android设备

android openGL ES2 一切从绘制纹理开始

纹理,在openGL中,可以理解为加载到显卡显存中的图片.Android设备在2.2开始支持openGL ES2.0,从前都是ES1.0 和 ES1.1的版本.简单来说,openGL ES是为了嵌入设备进行功能剪裁后的openGL版本.ES2.0是和1.x版本不兼容的,区别和兼容性参见android 官方文档. 首先,android使用openGL提供了特殊的view作为基础叫做GLSurfaceView.我们的view需要继承GLSurfaceView.如下简单示例: public class

android openGL ES2 一切从绘制纹理開始

纹理.在openGL中,能够理解为载入到显卡显存中的图片.Android设备在2.2開始支持openGL ES2.0.从前都是ES1.0 和 ES1.1的版本号.简单来说,openGL ES是为了嵌入设备进行功能剪裁后的openGL版本号.ES2.0是和1.x版本号不兼容的,差别和兼容性參见android 官方文档. 首先,android使用openGL提供了特殊的view作为基础叫做GLSurfaceView.我们的view须要继承GLSurfaceView.例如以下简单演示样例: publi

Android OpenGL ES

1.Android OpenGL ES 简明开发教程3D 坐标变换: http://www.linuxidc.com/Linux/2011-10/45756p4.htm

Android OpenGL ES零基础系列(一):理解GLSurfaceView,GLSurfaceView.Render的基本用法

转载请注明出处 前言 OpenGL ES是OpenGL的一个子集,是针对手机.PDA和游戏主机等嵌入式设备而设计的.该API由Khronos集团定义推广,Khronos是一个图形软硬件行业协会,该协会主要关注图形和多媒体方面的开放标准. 因此OpenGL ES作为第三方库被应用在android中. 到目前为止,OpenGL ES已经发展有了3个版本,OpenGL ES 1.0 , OpenGL ES 2.0 , OpenGL ES 3.0.其中OpenGL ES 1.0 是以OpenGL 1.3

[工作记录] Android OpenGL ES: non-square texture - continue

previous: [工作记录] Android OpenGL ES 2.0: square texture not supported on some device recently I found that it is the mipmap of a non-square texture that cause the black texture problem: http://stackoverflow.com/questions/5052762/using-mipmaps-results-

Android OpenGL入门示例:绘制三角形和正方形 (附完整源码)

Android上对OpenGl的支持是无缝的,所以才有众多3D效果如此逼真的游戏,在Camera的一些流程中也有用到GLSurfaceView的情况.本文记录OpenGL在Android上的入门级示例,绘制一个三角形和正方形.尽管功能简单,可是我捣腾了好几个晚上,大量网上文章上的代码都有点问题,不是绘制不出来就是挂了. 第一个文件:MainActivity.java package com.example.learnopengl1; import android.opengl.GLSurface

Android OpenGL ES 开发教程 从入门到精通

From:http://blog.csdn.net/mapdigit/article/details/7526556 Android OpenGL ES 简明开发教程 Android OpenGL ES 简明开发教程一:概述 Android OpenGL ES 简明开发教程二:构造OpenGL ES View Android OpenGL ES 简明开发教程三:3D绘图基本概念 Android OpenGL ES 简明开发教程四:3D 坐标变换 Android OpenGL ES 简明开发教程五

Android OpenGL ES(一)----必备知识

1.手机的坐标空间 我们都知道要想在手机上随心所欲的绘制图形,就必须了解手机的坐标体系.下图就是将坐标映射到手机屏幕的坐标. 图1 手机屏幕基本坐标系 2.OpenGL基本图形 在OpenGL里,只能绘制点,直线以及三角形. 三角形是最基本的图形,因为它的结构如此稳定,它随处可见,比如桥梁的结构化构件,它有三条边用来连接它的三个顶点,如果我们拿掉其中一个顶点,剩下的就是一条直线,如果我们再拿掉一个点,就只剩下一个点了. 点和直线可以用于某些效果,但是只有三角形才能用来构造拥有复杂的对象和纹理的场