确定与Android应用程序一起部署的.so的工作目录

确定与Android应用程序一起部署的.so的工作目录,android,android-ndk,Android,Android Ndk,我正在部署一个第三方共享对象作为android应用程序的一部分,这个共享对象显然试图在“应用程序的工作目录”中查找许可证文件 在已部署的android应用程序上,特别是在共享对象的上下文中,如何确定工作目录是什么 在本机包装中,我尝试: char cwd[PATH_MAX]; if (getcwd(cwd, sizeof(cwd)) != NULL) { printf("Current working dir: %s\n", cwd); } else {

我正在部署一个第三方共享对象作为android应用程序的一部分,这个共享对象显然试图在“应用程序的工作目录”中查找许可证文件

在已部署的android应用程序上,特别是在共享对象的上下文中,如何确定工作目录是什么

在本机包装中,我尝试:

    char cwd[PATH_MAX];

    if (getcwd(cwd, sizeof(cwd)) != NULL) {
        printf("Current working dir: %s\n", cwd);
    } else {
        perror("getcwd() error");
        return 1;
    }
cwd以“/”结尾

那似乎不对

然后,我尝试天真地编写一个文件:

   FILE* fFile = fopen("test.txt","w");
    if (fFile==NULL) {
        printf("Error %d \n", errno);
        printf("It's null");
    }
    fprintf(fFile, "Hello World");
    fclose(fFile);

菲菲最终被判无效。我的印象是,内部存储对读/写没有具体要求


Android上的库链接很好,函数可以执行-API只返回找不到许可证文件的消息。

您看到的行为是正确的(从某种意义上说,您的应用程序正在按设计工作)。历史上的根本原因可能是Android应用程序在Java虚拟机中运行,Java传统上不使用“工作目录”概念


但是,没有什么可以阻止您设置工作目录以满足移植库的期望。

没有经典意义上的“当前工作目录”。该库的开发者支持在Android上使用它吗?更新问题