2014-01-11 67 views
3

我使用libzip來閱讀本機代碼中的APK內容。android NDK。 libzip停止到子文件夾

assets/sounds/voice文件夾僅對libzip函數「消失」。

  • libzip還會看到其他文件。
  • 我仍然可以在assets/sounds/voice的項目文件夾中看到它。
  • 我做過clean多次。
  • 我仍然可以從bin文件夾中解壓縮APK文件,我可以看到所有需要的文件。 (包括assets/sounds/voice文件夾中的文件)

我說小logging命令,並沒有從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); 
} 

我不知道什麼步驟是錯的。有日食壓縮ZPK與我的libzip無法讀取的新格式?或者可能是一個原因。

回答

4

這不是libzip的答案,但爲什麼你必須使用libzip讀取NDK應用程序中的apk文件?在Android NDK中,您可以使用AAsset API從apk中獲取文件。看看「How To Get File In Assets From Android NDK」。

EDITED

這是不提供的Android-5,我仍然使用

確定。那麼Cocos2d-x's ZipFile怎麼樣?它基於Minizip

如何從cocos2dx/platform/android/CCFileUtilsAndroid.cpp

s_pZipFile = new ZipFile(resourcePath, "assets/"); 
pData = s_pZipFile->getFileData(fullPath.c_str(), pSize); 
+1

這是不提供的Android-5,我仍然使用ZipFile的使用。當我在1.5年前開始項目時,這很重要。 – Shuriken

+1

好的,更新了我的答案。 –

相關問題