0

我在 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 中

提前致谢

4

1 回答 1

0

我已经弄清楚为什么这不起作用。

将另一个 .zip 打包到 .apk 中似乎是个问题。在播放收到的文件夹中的 .zip 时

CCFileUtils::sharedFileUtils()->getWriteablePath()

然后打开拉链

CCFileUtils::sharedFileUtils()->getFileDataFromZip(...)

zip 正确加载,我可以从 zip 中读取某些文件。

于 2013-01-24T14:14:12.553 回答