【游戏开发备注之一】关于COCOS2DX_V1.X版本IPHONE与ANDROID运行出现图片白块、添加GAMECENTER报错问题及编译ANDROID闪退的解决办法&&CCLOG与CCLOG的区别

简介:
本站文章均为  李华明Himi 原创,转载务必在明显处注明: 
转载自【黑米GameDev街区】 原文链接:  http://www.himigame.com/android-game/1035.html

今天备注几个童鞋们可能会遇到的问题:

1. 关于Cocos2dx v1.x版本运行在iphone与Android平台出现图片变白块,尺寸一样。图片纯白问题。

之前出现此问题原因如下:

1.1  CCSprite与CCNode强转之间的问题造成;

1.2  pvr.ccz的资源大小宽高不是正方形的话(2 的N次幂)

解决方案,之前Himi给出方法了,这个问题请看之前的博文:

【iOS-cocos2d-X 游戏开发之十一】New CCSprite()带来的错误&使用CCUserDefault及pvr.ccz在Cocos2dx中要注意!

 今天讲解另外一个造成此问题的原因:

原因引擎的粒子系统,当使用粒子系统后,控制台给出警告:

OpenGL error 0x0500 in -[EAGLView swapBuffers]

就因为这个问题会造成在打包好的图片白块化,实出的机型:Android平台M9,iOS:iphone 4.3.3

关于 这个错误的谈论帖子如下链接:

http://www.cocos2d-x.org/boards/6/topics/7557?r=19039#message-19039

2.   Himi在cocos2dx 1.x版本运行在iOS6中调用GameCenter相关函数,出现如下错误:

(备注:此问题不仅仅使用GameCenter,ios6中其它也会遇到)

解决方案如下:

在调用使用GameCenter的 View Controller(报错的 View Controller类)中添加如下三个函数即可:

– (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{

return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft || interfaceOrientation == UIInterfaceOrientationLandscapeRight );

}

-(NSUInteger)supportedInterfaceOrientations{
return UIInterfaceOrientationMaskLandscape;
}

– (BOOL)shouldAutorotate
{
return YES;
}

cocos2dx 一般对于ios平台级别的组件进行使用时,都默认写在cocos2dx项目下的ios文件夹下的AppController.h/mm 中的。当然你也可以自己定义mm混编类。

 

3. 第三个问题就是关于cocos2dx 1.x 版本编译Android 一个造成闪退的原因。

对于这个问题出现的种类很多(但是你如果书写代码规范基本没有任何问题),这里Himi给个遇到验证过的问题吧。

Himi 在cocos2dx项目中Xcode书写代码有如下两个类,继承关系如下:

HClassA:public CCSprte

HClassB:public HClassA

如果你强制将HClassA类型强制转给HClassB对象会造成Android闪退的问题!!!!

虽然这种父类强转子类在Java中可以行得通,在iOS运行没有问题,但是!当编译到Android的时候就会出现100%闪退的现象。

 

关于NDK编译到Android后的调试打印CCLOG与CCLog问题这里简单说下:

之前很多童鞋问我,为什么使用CCLOG在Android不打印,咳咳、童鞋们可以点击进入CCLOG的定义,它在正式编译后自动取消不打入代码中的,而CCLog则不是,所以我们想在Android进行打印观察,那么请使用CCLog 。


相关文章
|
2月前
|
Android开发
安卓SO层开发 -- 编译指定平台的SO文件
安卓SO层开发 -- 编译指定平台的SO文件
30 0
|
3月前
|
安全 Android开发 数据安全/隐私保护
请说明鸿蒙操作系统与其他操作系统(如Android和iOS)的主要区别。
请说明鸿蒙操作系统与其他操作系统(如Android和iOS)的主要区别。
58 1
|
3月前
|
Android开发
Android基础知识:请解释Service是什么,它与IntentService的区别是什么?
Android基础知识:请解释Service是什么,它与IntentService的区别是什么?
39 0
|
3月前
|
Shell Android开发
RK android13编译环境搭建与常用编译命令
RK android13编译环境搭建与常用编译命令
67 0
|
3月前
|
数据可视化 Android开发 容器
Android UI设计: 请解释LinearLayout、RelativeLayout和ConstraintLayout的区别。
Android UI设计: 请解释LinearLayout、RelativeLayout和ConstraintLayout的区别。
93 5
|
3月前
|
存储 算法 Android开发
AVB校验微观版本:android avb(Android Verified Boot)验证
AVB校验微观版本:android avb(Android Verified Boot)验证
215 0
|
11天前
|
Android开发 开发者
安卓投屏神器 Scrcpy安 报错ERROR: Could not find any ADB device
使用Scrcpy安卓投屏工具时遇到报错,问题根源是未开启开发者模式。解决步骤:进入设置,点击【关于手机】→连续点击版本号激活开发者模式,然后在【系统设置】→【开发者选项】中开启USB调试。参照此方法后可正常执行。Scrcpy软件下载链接和GitHub页面也已提供。
21 1
|
30天前
|
运维 监控 Java
应用研发平台EMAS产品常见问题之安卓构建版本失败如何解决
应用研发平台EMAS(Enterprise Mobile Application Service)是阿里云提供的一个全栈移动应用开发平台,集成了应用开发、测试、部署、监控和运营服务;本合集旨在总结EMAS产品在应用开发和运维过程中的常见问题及解决方案,助力开发者和企业高效解决技术难题,加速移动应用的上线和稳定运行。
|
1月前
|
监控 安全 Android开发
安卓发展历程和主要版本的简要介绍
安卓发展历程和主要版本的简要介绍
31 1