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()

次にzipを開きます

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

zipが正しく読み込まれ、zip内から特定のファイルを読み取ることができます。

于 2013-01-24T14:14:12.553 に答える