我在android上使用cocos2d-x时遇到问题。 我正在尝试使用
加载.zip文件CCFileUtils::sharedFileUtils()->getFileDataFromZip(...)
由于这个项目设计为多平台,我们也在iPad3上尝试了这个代码,并且在那里工作没有问题。 问题是应用程序在加载zip文件时会出现Segmentation Fault。
以下是包含一些额外注释的整个代码
void Map::loadChunk(int index, CCPoint startPoint) {
chunks[index]->startPoint = startPoint;
std::stringstream filename;
filename << (int)startPoint.x << "_" << (int)startPoint.y << ".map";
unsigned long filesize = 0;
const char* path = CCFileUtils::sharedFileUtils()->fullPathFromRelativePath("map1.zip");
CCLog(path);
CCLog(filename.str().c_str());
// In the following two lines the error occurs
const char* buffer =(const char*) CCFileUtils::sharedFileUtils()->getFileDataFromZip(path, filename.str().c_str(), &filesize);
std::istringstream fileBuffer(buffer);
CCLog("filesize %d", (int)filesize);
std::string line;
// Here some code follows but this code does not produce the problem so I left it out
}
使用的包括:
#include <iostream>
#include <fstream>
#include <sstream>
#include <map>
#include "cocos2d.h"
路径和文件名的值为 map1.zip 和 -128_-128.map
map1.zip位于assets文件夹中,.map文件存在于map1.zip
中提前致谢
答案 0 :(得分:0)
我已经弄明白为什么这不起作用了。
将另一个.zip包装到.apk中似乎是个问题。 在
收到的文件夹中播放.zip时CCFileUtils::sharedFileUtils()->getWriteablePath()
然后用
打开zipCCFileUtils::sharedFileUtils()->getFileDataFromZip(...)
zip正确加载,我能够从zip内部读取某些文件。