【问题标题】:android NDK. libzip stopped to sub folder安卓NDK。 libzip 停止到子文件夹
【发布时间】:2014-01-30 04:28:48
【问题描述】:

我使用libzip 读取原生代码中的 APK 内容。

assets/sounds/voice 文件夹“消失”仅适用于 libzip 函数。

  • libzip 仍然可以查看其他文件。
  • 我仍然可以在项目文件夹的assets/sounds/voice 中看到它。
  • 我做了很多次clean
  • 我仍然可以从bin 文件夹中解压缩APK 文件,我可以看到所有需要的文件。 (包括来自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?或者可能是什么原因。

【问题讨论】:

    标签: android android-ndk android-assets libzip


    【解决方案1】:

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

    已编辑

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

    好的。那么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);
    

    【讨论】:

    • 在我仍在使用的 android-5 中不可用。当我 1.5 年前开始项目时,这很重要。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-22
    • 2013-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多