android NDK. libzip停止到子文件夹

我使用libzip读取本机代码中的APK内容.

仅针对libzip功能“消失”的资产/声音/语音文件夹.

> libzip仍然可以看到其他文件.
>我仍然可以在项目文件夹的资产/声音/语音中看到它.
>我做了很多次清洁.
>我仍然可以从bin文件夹解压缩APK文件,然后看到所有必需的文件. (包括资产/声音/语音文件夹中的文件)

我添加了小的日志记录命令,它不打印资产/声音/语音文件夹中的文件.所有其他文件都存在.

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);
}

我不知道哪一步错了.用我的libzip无法读取的新格式的eclipse压缩ZPK吗?或可能是原因.

解决方法:

这不是libzip的答案,但是为什么您必须使用libzip在NDK应用程序中读取apk文件?在Android NDK中,您可以使用AAsset API从apk获取文件.看一下“ How To Get File In Assets From Android NDK”.

已编辑

It is not available in android-5 that I still use

好.那Cocos2d-x’s ZipFile呢?它基于Minizip.

如何从cocos2dx/platform/android/CCFileUtilsAndroid.cpp开始使用ZipFile

s_pZipFile = new ZipFile(resourcePath, "assets/");
pData = s_pZipFile->getFileData(fullPath.c_str(), pSize);
上一篇:libzip开发笔记(二):libzip库介绍、ubuntu平台编译和工程模板


下一篇:C Libzip删除=核心转储