Cocos2d—X游戏开发之Mac,Windows移植android编译闪退原因总结

Cocos2d—X Version: cocos2d-2.1rc0-x-2.1.3

Mac,Windows移植android编译闪退原因总结:

1.父类强转

对于这个问题出现的种类很多(但是你如果书写代码规范基本没有任何问题)

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

HClassA:public CCSprte

HClassB:public HClassA

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

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

2.静态全局变量中使用本地路径方法

Kevin为了偷懒把

CCFileUtils::sharedFileUtils()->getWritablePath()

这个方法封装成一个静态全局变量,以方便在curl的回调函数中使用。

这个写法在Xcode上面编译、运行OK,但是Android编译直接闪退。


看下这个方法的源码,大家就明白了。


std::string CCFileUtilsIOS::getWritablePath()

{

    // save to document folder

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

    NSString *documentsDirectory = [paths objectAtIndex:0];

    std::string strRet = [documentsDirectory UTF8String];

    strRet.append("/");

    return strRet;

}






评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值