我在 android 上使用 cocos2d-x 时遇到问题。我正在尝试使用加载 .zip 文件
CCFileUtils::sharedFileUtils()->getFileDataFromZip(...)
由于这个项目是为多平台设计的,我们也在 iPad3 上尝试了这段代码,它在那里运行没有问题。问题是应用程序在加载 zip 文件时出现分段错误。
这是带有一些额外注释的整个代码
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 中
提前致谢