AAssetManager_openDir启动时崩溃应用程序

时间:2013-04-01 17:37:57

标签: android-ndk

我正在尝试遍历assets文件夹中包含的所有文件。要获取我使用的工作目录:AAssetManager_openDir。然而,只是在我的代码中使用此代码会导致启动时崩溃 - android_main甚至不会查看。有没有人有类似的问题和/或知道如何解决这个问题?

const char* filename = (const char*)NULL;
const char* dirName = "";
AAssetDir* dir = AAssetManager_openDir(assetManager, dirName);
while((filename = AAssetDir_getNextFileName(dir)) != NULL)
{
    //action per file
}
AAssetDir_close(dir);

2 个答案:

答案 0 :(得分:0)

好吧,我没有运气,所以我尝试了不同的方法。

我编译了一个Minizip的静态库,并与Zlib一起打开了APK文件(通过JNIEnv找到的路径),发现文件名位于其中,跳过资源文件夹中未包含的条目。

迂回的方式,但由于AAssetManager_openDir不起作用,这似乎是唯一的选择。

如果有人确实找到了“正确的”解决方案,那还是不错的。

答案 1 :(得分:0)

const char* dirName = "";

可能是导致崩溃的原因。

而是尝试:

while(1)
{
const char* filename = AAssetDir_getNextFileName(dir);
if(!filename)
break;

}