win32到android,missingfile导致的闪退

如有错误,请联系我更正,以免误导他人!)
   今天,break把一个使用cocos2dx在win32下开发的项目编译成android进行调试时碰到闪退的问题。在win32下运行没有问题,在android上运行却出现闪退的情况。通过把项目导入eclipse进行debug,看到错误如下:
    机智的小伙伴肯定跟break一样,第一时间关注最下面的红色文字提示的错误信息。红色的文字显示的意思是出现的“内存泄漏”。看到这,break马上回去检查C++代码中所有的内存操作。但是看了又看查了又查,发现并没有问题。break就开始怀疑人生怀疑理想了(PS:尼玛!写了这么久C++,内存泄漏还看不出来)。
    再看上面图片中用红色圈圈圈出来的“missing file”。这就是break后来发现的问题所在了。在android上运行时找不到break的项目中的纹理图片和字体文件,进而导致内存泄漏。
    利用cocos2dx进行开发时,我们的资源文件一般都会放在Resource文件夹下,有时我们会在Resource文件夹下创建子目录(break在Resource下创建了两个子目录,分别存放字体和纹理)。当我们用绝对路径的方式去访问资源时不会出现上面这种问题。但是,为求简单,我们可能会用"Resource子目录/文件名"的方式代替绝对路径去访问资源文件,利用这种方式访问的话涉及到coco2dx的搜索路径的问题。
    在win32下(ios和win32下情况相同),利用上面的方式去访问资源会自动搜索Resource下的子目录。在android上则不会,我们要在适当的地方添加访问问件时的搜索路径(添加方法: FileUtils::getInstance()->addSearchPath("目录名/");
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值