3

libzip用来阅读原生代码中的 APK 内容。

assets/sounds/voice仅针对 libzip 功能的文件夹“消失”。

  • libzip仍然看到其他文件。
  • 我仍然可以assets/sounds/voice在项目文件夹中看到它。
  • 我做clean了很多次。
  • 我仍然可以APKbin文件夹中解压缩文件,并且可以看到所有必需的文件。(包括文件assets/sounds/voice夹中的文件)

我添加了小型日志记录命令,它不会打印文件assets/sounds/voice夹中的文件。所有其他文件都存在。

int inum = zip_get_num_files(apkzip);
for(int i = 0; i < inum; i++){
  const char * name = zip_get_name(apkzip, i, 0);
  __android_log_print(ANDROID_LOG_INFO,"FILEZIP", "zip: %s", name);
}

我不知道在哪一步出了什么问题。eclipse 是否使用我的 libzip 无法读取的新格式压缩 ZPK?或者可能是什么原因。

4

1 回答 1

4

这不是 libzip 的答案,但为什么必须使用 libzip 来读取 NDK 应用程序中的 apk 文件?在 Android NDK 中,您可以使用 AAsset API 从 apk 获取文件。看看“如何从 Android NDK 获取资产中的文件”。

已编辑

它在我仍然使用的 android-5 中不可用

好的。那么Cocos2d-x 的 ZipFile怎么样呢?它基于Minizip

如何使用cocos2dx/platform/android/CCFileUtilsAndroid.cpp中的 ZipFile

s_pZipFile = new ZipFile(resourcePath, "assets/");
pData = s_pZipFile->getFileData(fullPath.c_str(), pSize);
于 2014-01-11T06:30:41.107 回答