cocos2dx3.13,FileUtils-android.cpp中可以看到:

FileUtils::Status FileUtilsAndroid::getContents(const std::string& filename, ResizableBuffer* buffer)
{
static const std::string apkprefix("assets/");
if (filename.empty())
return FileUtils::Status::NotExists; string fullPath = fullPathForFilename(filename); if (fullPath[0] == '/')
return FileUtils::getContents(fullPath, buffer); string relativePath = string();
size_t position = fullPath.find(apkprefix);
if (0 == position) {
// "assets/" is at the beginning of the path and we don't want it
relativePath += fullPath.substr(apkprefix.size());
} else {
relativePath = fullPath;
}
...
}

如果路径以assets/开头,则assets会被去掉。这就意味着你的Resources下不能有assets文件夹,否则下面所有的文件都会由于这个规则而无法取到。

另外,android版本的FileUtil不可以在静态变量中进行初始化。也就是说FileUtil::getInstance()这个函数不能在静态变量中调用。因为其中将调用getAPKPath函数,而这个函数在程序开始时会返回NULL,用它初始化一个string会崩溃。

记录一下

cocos2dx的android版FileUtils的坑的更多相关文章

  1. 还是俄罗斯方块之android版

    前面的,口水话 请直接跳过. 虽然现在不比以前了 也没多少人气了,放到首页 都不到几百的点击量.也许博客园整体水平也是在往水的方向发展.不谈那些了,哥也曾经辉煌过 有过一天上千的点击量 ,哥也曾经有过 ...

  2. cocos2d-x for android配置 & 运行 Sample on Linux OS

    1.从http://www.cocos2d-x.org/download下载稳定版 比如cocos2d-x-2.2 2.解压cocos2d-x-2.2.zip,比如本文将其解压到 /opt 目录下 3 ...

  3. 基于cocos2d-x的Android游戏中使用fmod音频引擎

    cocos2d-x的音频引擎是cocosDenshion, 它的Android版比较弱, 只能播放一个背景音乐和些许音效, 如果要实现稍微复杂一点的音频播放, 比如同时播放几个音轨就不能了. 这一点远 ...

  4. 一次搞定cocos2d-x的 Android.mk 文件

    cocos2d-x 打 android 包时要修改 Android.mk 文件,但每次修改很麻烦,如果源文件很多的话就坑死了,也可以写一个脚本来自动生成这个文件,但每次还要重新生成一下,将其修改下面的 ...

  5. 于Eclipse在建筑cocos2d-x的Android开发环境(避免cygwin)

    于Eclipse在建筑cocos2d-x的Android开发环境(避免cygwin) 在袭击几天学习Android开发之后,我開始转向cocos2d-x的Android开发了.因为自己曾经有了解过co ...

  6. Android项目开发填坑记-Fragment的onBackPressed

    Github版 CSDN版 知识背景 Fragment在当前的Android开发中,有两种引用方式,一个是 Android 3.0 时加入的,一个是supportV4包中的.这里简称为Fragment ...

  7. Android项目开发填坑记-Fragment的onAttach

    背景 现在Android开发多使用一个Activity管理多个Fragment进行开发,不免需要两者相互传递数据,一般是给Fragment添加回调接口,让Activity继承并实现. 回调接口一般都写 ...

  8. Android项目开发填坑记-so文件引发的攻坚战

    故事的最初 我负责的项目A要求有播放在线视频的功能,当时从别人的聊天记录的一瞥中发现百度有相关的SDK,当时找到的是Baidu-T5Player-SDK-Android-1.4s,项目中Demo的so ...

  9. 【转】手把手教你读取Android版微信和手Q的聊天记录(仅作技术研究学习)

    1.引言 特别说明:本文内容仅用于即时通讯技术研究和学习之用,请勿用于非法用途.如本文内容有不妥之处,请联系JackJiang进行处理!   我司有关部门为了获取黑产群的动态,有同事潜伏在大量的黑产群 ...

随机推荐

  1. git 教程(15)--分支管理策略

    通常,合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息. 如果要强制禁用Fast forward模式,Git就会在merge时生成一个新的comm ...

  2. HTTP响应消息中的状态代码

  3. WebStrom快捷键

    WebStorm 是 JetBrains 推出的一款商业的 JavaScript 开发工具 任何一个编辑器都需要保存(ctrl + s),这是所有win平台上编辑类软件的特点,但是webstorm编辑 ...

  4. MySQL 慢查询日志分析及可视化结果

    MySQL 慢查询日志分析及可视化结果 MySQL 慢查询日志分析 pt-query-digest分析慢查询日志 pt-query-digest --report slow.log 报告最近半个小时的 ...

  5. log4cxx

    1.简介 (1)Apache log4cxx当前是由Apache软件基金会进行维护.它是java中著名开源项目Apache log4j在c++中对应的日志框架.它是借助于APR(Apache Port ...

  6. jdbc连接数据库(mysql,sqlserver,oracle)

    package com.test; import java.sql.Connection; import java.sql.DriverManager; import java.sql.Prepare ...

  7. 文本切割软件Replace Pioneer

    工作中遇到一些大文本,或者一些文件需要在特定的行切割开的.Replace Pioneer正好用于此的软件. 把一个文本切分不同文本的步骤: 1先把文本数据放到打开

  8. $().click(function(){}) 不管用 live()替代品 append之后

    根据jQuery的官方描述,live方法在1.7中已经不建议使用,在1.9中删除了这个方法.并建议在以后的代码中使用on方法来替代. on方法可以接受三个参数:事件名.触发选择器.事件函数. 需要特别 ...

  9. Pyqt show和exec的区别

    Pyqt中 QDialog  show和exec的区别 QDialog的显示有两个函数show()和exec().他们的区别在参考文档上的解释如下: show():显示一个非模式对话框.控制权即刻返回 ...

  10. 1.GoldenGate 简单的一对一配置

    一,软件安装   源端和目标端均执行(只要修改相应的目录)   1.上传软件,放到ogg的安装目录,并解压   mkdir /home/oracle/ogg unzip ogg112101_fbo_g ...