Android ndk AAssetManager_openDir在启动时崩溃应用程序

Android ndk AAssetManager_openDir在启动时崩溃应用程序,android-ndk,Android Ndk,我正在尝试遍历资产文件夹中包含的所有文件。要获取工作目录,我使用:AAssetManager\u openDir。然而,仅仅在我的代码中包含这一点就会导致启动时崩溃——android_main甚至都没有看到。有没有人遇到过类似的问题和/或知道如何解决 const char* filename = (const char*)NULL; const char* dirName = ""; AAssetDir* dir = AAssetManager_openDir(assetManager, dir

我正在尝试遍历资产文件夹中包含的所有文件。要获取工作目录,我使用:AAssetManager\u 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);

嗯,我没有任何运气让它工作,所以我尝试了一个不同的方法

我编译了一个Minizip静态库,并与Zlib结合,打开了APK文件,通过JNIEnv找到了该文件的路径,找到了其中的文件名,跳过了资产文件夹中不包含的条目

这是一种迂回的方法,但由于AAssetManager_openDir无法工作,因此这似乎是唯一的选择

不过,如果有人能找到正确的解决方案,那就太好了

const char* dirName = "";
这可能是造成这次事故的原因

相反,请尝试:

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

}