Android JNI C/C ++実行コードの現在の作業ディレクトリは何ですか?

Androidの場合、NDKを使用して作成されたC/C ++共有ライブラリが呼び出され、現在作業中のディレクトリは何ですか?ありがとう

7

3 答え

現在のディレクトリは、アプリケーションディレクトリではなく、 "/"です。

#include 
#include 

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

アプリケーションディレクトリを取得するには、JavaコードへのJNI呼び出しを使用する必要があります。Javaコードを呼び出すと、AndroidアプリケーションディレクトリがContextから取得されます。

7
追加された

たぶんNDKのサンプルが "android-ndk-rxx/samples/two-libs"にあると便利なメッセージが表示されます。

2
追加された

負。ネイティブコードgetcwd()はアプリケーションディレクトリではない '/'を返します。ネイティブにどこにあるかを知らせるためには、アプリケーションディレクトリ(Contextオブジェクトから取得)をネイティブメソッドを介して故意にネイティブに渡す必要があります。 または、複雑すぎるネイティブコードでコンテキストのメソッドを呼び出そうとします。

1
追加された