私はNDKを使用しようとしています。私は公式サンプルを使って作業を始めています。私は「こんにちはJNI」のサンプルの作業を取得するために管理してきました: https://github.com/googlesamples/android-ndk/tree/master/hello-jni初心者のためのNDK:ソースファイルを追加する場所/方法は?
(私はAndroidのメーカーと連携)
をしかし、私はプロジェクトにソースファイルを追加する方法がわかりません。したがって、たとえば、提供JNI関数がある(私はこれのために有用ではないマクロを削除):
jstring Java_com_example_hellojni_HelloJni_stringFromJNI(JNIEnv* env,
jobject thiz)
{
return (*env)->NewStringUTF(env, "Hello from JNI !");
}
のは、私のように定義されたC関数「のgetString()」、から文字列を取得したいとしましょう以下:
const char* getString()
{
return "Hello from getString()";
}
//Then, JNI function becomes
jstring Java_com_example_hellojni_HelloJni_stringFromJNI(JNIEnv* env,
jobject thiz)
{
return (*env)->NewStringUTF(env, getString());
}
私は関数を宣言getString.hを作成し、私の現在、唯一のソース・ファイルで実装を入れた場合は、すべてが魔法のように動作します。したがって、ヘッダーが機能します。
ただし、私が実装を置く場所にGetString.cファイルを作成すると、コードがコンパイルを停止します。 GetString.oはリンクされていない(またはコンパイルされていてもわかりません)ので、理解していますが、Android Studioにhello-jni.c(サンプルのソースファイル)とGetString.c
私の手を汚くして、gradleファイルを変更する必要がありますか? 私はまた、makefileのように動作するAndroid.mkというファイルについて聞いたことがありますが、プロジェクトで見つけられませんでした。それが必須であれば、私はそれを作り、それに何を入れるべきですか?そうでない場合、IDEはhello-jni.cをビルドする必要があることをどのように認識していますか?あなたは、Java側のものかのGradleスクリプトに関するあらゆる情報が必要な場合は、単にgithubのリンク:)