Android JNI, какова текущая рабочая директория для исполняемого кода C / C ++? - PullRequest
8 голосов
/ 25 ноября 2011

В Android, если вызывается разделяемая библиотека C / C ++, созданная с помощью NDK, и она загружает файл, каков его текущий рабочий каталог? Спасибо

Ответы [ 3 ]

7 голосов
/ 19 сентября 2013

Текущий каталог "/", а не каталог приложения:

#include <jni.h>
#include <android/log.h>

char cwd[1024];
if (getcwd(cwd, sizeof(cwd)) != NULL)
    __android_log_print(ANDROID_LOG_INFO, "", cwd);

Чтобы получить каталог приложения, вам нужно использовать вызовы JNI для кода Java, который, в свою очередь, получает каталог приложения Android из Context.

1 голос
/ 19 декабря 2014

Negative.Собственный код getcwd () вернет '/', который не является каталогом приложения.Чтобы дать нативу знать, где он находится, необходимо преднамеренно передать каталог приложения (полученный из объекта Context) нативному с помощью нативного метода.Или попробуйте вызвать метод Context с нативными кодами, который слишком сложен.

0 голосов
/ 02 декабря 2011

Возможно, пример NDK в "android-ndk-rxx / samples / two-libs" даст вам несколько полезных сообщений.

...