Android JNI什么是C / C ++执行代码的当前工作目录?

在Android中,如果使用NDK创build的C / C ++共享库被调用,并且它加载了一个文件,它的当前工作目录是什么? 谢谢

Solutions Collecting From Web of "Android JNI什么是C / C ++执行代码的当前工作目录?"

当前目录是“/”,而不是应用程序目录:

#include <jni.h> #include <android/log.h> char cwd[1024]; if (getcwd(cwd, sizeof(cwd)) != NULL) __android_log_print(ANDROID_LOG_INFO, "", cwd); 

要获取应用程序目录,需要使用对Java代码的JNI调用,然后从Context获取android应用程序目录。

负。 本机代码getcwd()将返回“/”,而不是应用程序目录。 为了让本地知道它在哪里,必须通过本地方法故意地将应用程序目录(从Context对象获得)传递给本地。 或者尝试使用本地代码来调用Context的方法,这太复杂了。

也许在“android-ndk-rxx / samples / two-libs”的NDK示例会给你一些有用的信息。