<cocos2dx 随记> 关于cocos2dx接Android sdk的一些坑

简单说说UI线程 :在Android中,有个非常重要的家伙非常霸道,那就是UI线程。这霸道之一:不能被阻塞。 之二:系统对每一个组件的调用都从UI线程分发出去。

简单说说openGL线程:但凡cocos2dx 启动的绘制线程都是openGL线程。就这么多

任何SDK界面的调用,必须从UI线程中调用,所以需要放到主线程中。如果我们直接从GL线程中调用,轻则调用不了,重者程序蹦死。

解决办法:

得到主线程的handler,这里简单说一种,就是在onCreate中new一个静态handler。

或者  new Handler(Looper.getMainLooper()),且叫 mainHandler吧,

启动一个线程,

			Thread sendThread=new Thread(new Runnable(){
				public void run() {
					mainHandler.post(sendRun);
				}
			});
	public Runnable sendRun=new Runnable() {
		@Override
		public void run() {
//			//这里就可以调用sdk里面的东西了
	}
};	

<span style="font-family: Verdana, Arial, Helvetica, sans-serif;font-size:12px; line-height: 27px;">如何从UI线程中调用OpenGL线程呢,直接调用,我以前也干过,感觉没什么问题被发现(he he),如果发现了问题我觉得还是这么调用的好 </span>

Cocos2dxGLSurfaceView.getInstance().queueEvent(new Runnable() {
			public void run() {
<span style="white-space:pre">				</span>//回调什么马的
			}
		});

至于想知道,jni native什么的 还请出门右拐,不送

时间: 2024-11-09 04:41:49

<cocos2dx 随记> 关于cocos2dx接Android sdk的一些坑的相关文章

记第二次面试 -- Android SDK实习生(游戏创业公司)

今天一早,早餐都吃了两根火腿,就奔上地铁去信息港面试. 番禺广场这边过去还是蛮远的,一路地铁到体育西,下车走到BRT做到学院站,到了信息港,找到公司也花了十几二十分钟(我走错栋了= =,后来是打电话给公司的MM才找到路). 进去先填表,一些基本的信息和期待的薪资等(貌似那张表的背后还有内容要填的,我漏了...不过也不确定是否有内容). 先是项目经理来面试,这个过程是比较轻松的,因为不涉及技术问题,算是相互了解了一下.问了下我实习的时间,介绍了公司的目前状况,以及对我做过的项目和事情的一些了解,这

cocos2d-x之jni使用(对接Android各种sdk)

游戏弄完了,要发布到各个平台,ios.Android是肯定少不了的,那么本文就来讲讲Android平台对接代理商付费sdk.各渠道.五大运营商.广告.分享.数据统计等等少不了的jni调用,接sdk真是各种麻烦事儿啊... 首先,这么多sdk,功能各有不同,所以得有一个统一的sdk管理类来管理,然后游戏中需要用到什么功能的时候调用指定接口,接口实现时,不同的平台在调用不用的sdk~ 然后,c++调用java层:(拿显示广告来举例) //===============================

cocos2dx 编译错误 BUILD FAILEDG:\android\SDK\android-sdk-windows\tools\ant\build.xml:645: The following

BUILD FAILEDG:\android\SDK\android-sdk-windows\tools\ant\build.xml:645: The following erroroccurred while executing this line:G:\android\SDK\android-sdk-windows\tools\ant\build.xml:683: null returned: 1 解决办法: rd bin /S /Q cocos2dx 编译错误 BUILD FAILEDG:

cocos2dx安卓客户端接入移动MM付费SDK

C++和java的调用需要使用JNI,这里使用cocos2dx提供的JniHelper就可以满足要求. 以游戏中购买炸弹道具为例 流程图: 先按照文档进行配置: 在Java工程中新建一个包"IAP",作为C++与mmsdk交互的中间层: Handler和Listener可以使用Demo自带的两个类,将Demo2.4.2中的IAPHandler.java和IAPListener.java复制到IAP中: 在package IAP下新建类IAPJni 1 package IAP; 2 3

(1)Cocos2d-X 3.4 final Windows和Android环境配置

前言 最近开始接触cocos2d-x这一跨平台游戏开发框架,和学习所有框架一样,新人遇到的第一个问题就是开发环境的配置问题.这里把我的配置过程记录下来,备以后查用. 安装包 所需要的安装包如下: Cocos2d-x 3.4,地址http://cn.cocos2d-x.org/download#anchor2 Android SDk,这里我直接使用的Android官方开发环境Android Studio,地址https://dl.google.com/dl/android/studio/insta

cocos2dx在windows下搭建环境android报错

报错:Program bash is not found in PATH (如果按照我的方法来的话是没有这个错误的,我之前用别的方法的时候有但是后来还是没解决,写出来放到这里做参考吧) 参考原文:http://blog.csdn.net/fuyongbing1986/article/details/11556149 方法: 1.把cygwin/bin加入系统环境变量Path下 2.右击工程-->properties-->C/C++ Build -->ToolChain Edit    确

【Cocos2d-x】Mac 在 Cocos2d-x 3.X 打包Android

今天cocos2d-x 3.0正式版最终公布了,下午特地下载了来尝尝鲜,废话不多说了. 3.0正式版的环境搭建和之前的RC版事实上是一样的,太多的教程也写了怎样搭建.今天来写写我自己是怎样来搭建的. 我的开发环境是:mac + xcode + eclipse ,事实上如今win以下的环境和这个都是一样的,唯一不一样的就是环境变量的配置. 以下主要介绍cocos2d-x环境的设置以及android的环境搭建 1.下载cocos2d-x 3.0正式版 http://www.cocos2d-x.org

Cocos2d-x 3.0 编译 eclipse+Win7+Android 篇

文档 Eclipse --> Windows--> Preferences ... 3. Set up Variables: 1. Path Variable `COCOS2DX`: * Eclipse->Preferences->General->Workspace->**Linked Resources** * Click **New** button to add a Path Variable `COCOS2DX` pointing to the root co

cocos2dx 自动添加cpp文件到android.mk

将 LOCAL_SRC_FILES := hellocpp/main.cpp ../../Classes/AppDelegate.cpp ../../Classes/HelloWorldScene.cpp 修改成 FILE_LIST := hellocpp/main.cpp FILE_LIST += $(wildcard $(LOCAL_PATH)/../../Classes/*.cpp) LOCAL_SRC_FILES := $(FILE_LIST:$(LOCAL_PATH)/%=%) coc