AndroidStudioにndkをインストール
-
ツール>SDK Manager を開く。
-
外観&振る舞い>システム設定>Android SDKから、SDK Toolsタブを開く。
-
インストールしたndkにパスを通す。
windowsの設定→システム→詳細情報>システムの詳細設定
環境変数→システム環境変数>Pathを選択し、編集→新規
ndkを使えるようにするための設定
1.build.gradleにsourceSetsを追記する
build.gradle
android {
/* (中略)*/
defaultConfig {
/* (中略) */
sourceSets {
main {
jni.srcDirs = []
jniLibs.srcDir "src/main/libs"
}
}
}
}
2. AndroidStudioのプロジェクトビューから、mainフォルダ配下に「jni」ディレクトリを新規作成。
3. 作成したjniフォルダ内に、Android.mkファイルを作成する。
Android.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := jni_main
LOCAL_SRC_FILES := jni_test.c
include $(BUILD_SHARED_LIBRARY)
kotlinからjniを呼び出す
- 呼び出される側のソースを、jniフォルダに新規作成
jni_test.c
#include <string.h>
#include <jni.h>
// 「jp_co_jnipkg」=パッケージ名
// 「MainActivity」=呼出し元
// 「TestJNI」 =メソッド名
jstring Java_jp_co_jnipkg_MainActivity_TestJNI( JNIEnv* env, jobject thiz ) {
return (*env)->NewStringUTF(env, "JNIを呼び出しました!");
}
2.MainActivityにjni呼出し処理を記述
MainActivity.kt
public class MainActivity extends AppCompatActivity {
//JNI
public native String TestJNI();
static {
System.loadLibrary("jni_test");
}
@Override
protected void onCreate(Bundle savedInstanceState{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//JNIの呼び出し
val result = TestJNI(); //"JNIを呼び出しました!"
}
}
3. jniフォルダ右クリック→パス/参照のコピー→絶対パス で、jniフォルダの絶対パスをコピー。
AndroidStudio下部のターミナルウィンドウを開き、コピーしたパスにcdコマンドで移動し、
ndk-buildを実行する。
4. 通常どおりビルドして、実行