win32到android,missingfile导致的闪退
16lz
2021-01-25
( 如有错误,请联系我更正,以免误导他人!) 今天,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("目录名/");
)
)
更多相关文章
- GitHub 标星 2.5K+!教你通过玩游戏的方式学习 VIM!
- Android(安卓)SAX方式解析XML文件
- Android动态快捷方式兼容性问题
- Android(安卓)解决依赖冲突问题
- Android三种绑定Service方式的demo
- android安卓应用推广的六大方式详细介绍
- Android(安卓)APP性能及专项测试
- android中关闭所有activity方法
- Android+OTA+升级之一:编译升级包---make+otapackage