0

質問は次のとおりです。iOs/win32 cocos2dx プロジェクトの Resources フォルダーにいくつかの .txt ファイルがあります (そこではすべてが完璧に動作します)。これをAndroidに移植しようとしていますが、プロジェクトのビルド時に.txtマップファイルが見つからないことを除いて、すべてうまくいきます。アセットフォルダー内のすべての写真が表示されます私はそのようなコードを使用します

std::stringstream ss;
ss << "tutorialMap" << i << ".txt";
std::string fileName = ss.str();
const char *fullPath = CCFileUtils::sharedFileUtils()->fullPathFromRelativePath(fileName.c_str());

#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID) 
  std::stringstream strStream;
  strStream<<"/data/data/com.cocos2dx.application/"<<fileName; 
  std::string fName = strStream.str();
  fullPath = fName.c_str();
  CCLog("File name is:%s",fullPath);
#endif

std::ifstream t(fullPath);
std::string str((std::istreambuf_iterator<char>(t)),std::istreambuf_iterator<char>());
CCLog("file content: %s",str.c_str());

iOS/win32ビルドが機能すると、最後の行にファイルのコンテンツが表示されますが、Androidでは空です。ファイルがないようです。助けてください!!!!

PS また、1 週間前 (プロジェクトの準備ができていなかったとき) に同じことをしようとしていたところ、すべて問題ありませんでした。その理由が何であるかを見つけることができるリンクまたは何か他のものを教えてもらえますか。

4

1 に答える 1

0

Android はフォルダーアセットを .apk ファイルに圧縮して保持するため、次のような別の方法でそこに移動する必要があります。

unsigned char * bufferSize = 0;
unsigned char * charbuffer = CCFileUtils::sharedFileUtils()->getFileData(genrefile, "file", &bufferSize );

assets/ これは空です。これを使用して、未加工のアセット ファイルを保存できます。ここで保存したファイルはそのまま .apk ファイルにコンパイルされ、元のファイル名が保持されます。URI を使用して一般的なファイル システムと同じ方法でこのディレクトリをナビゲートし、AssetManager を使用してファイルをバイト ストリームとして読み取ることができます。たとえば、これはテクスチャやゲーム データに適した場所です。

ドキュメントを見る

アセットについて

于 2012-12-13T00:50:05.243 に答える