1

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

2 回答 2

0
const char* dirName = "";

可能是导致崩溃的原因。

而是尝试:

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

}
于 2013-04-20T07:41:23.367 回答
0

好吧,我没有任何运气让它工作,所以我尝试了一种不同的方法。

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

迂回的方式来做到这一点,但由于 AAssetManager_openDir 不工作,这似乎是唯一的选择。

如果有人确实找到了“正确”的解决方案,那就太好了。

于 2013-04-02T11:14:23.450 回答