前回の続き

現在のファイル構造hoge


1. ビルドしてみる
jni フォルダを右クリック [Show in Explorer] をクリック

開いたら、 Shift を押しながらjniフォルダを右クリックし [コマンド ウィンドウをここで開く] を押す

コマンドプロンプトが立ち上がるので、そのまま


ndk-build APP_ABI=all

と打ち込みエンター
hoge2

こんな感じになればビルド成功です。 何かエラーが出た場合にはそれに従ってください…


2. ライブラリのフォルダを指定する
ビルドに成功すると jniと同じ階層に libs というフォルダが出来ています。

appの中にある build.gradle に記述します。
・修正
前 jni.srcDirs = [‘src/main/jni’, ‘src/main/jni/’]
後 jni.srcDirs = []
・追加 jniLibs.srcDir “src/main/libs”


android {
    ...
    sourceSets {
        main {
            jni.srcDirs = []
            jniLibs.srcDir "src/main/libs"
        }
    }
}

これでディレクトリの指定は終わりです。


3. Javaから helloWorld を呼び出す
MainActivityを開きます

public class MainActivity extends Activity {
の下に


static {
    System.loadLibrary("hello");
}
public native String helloWorld();

を追加

MainActivityの中で関数を呼び 文字列を取得
 今回はonCreateのときにダイアログで文字表示


public class MainActivity extends Activity {
    static {
        System.loadLibrary("hello");
    }
    public native String helloWorld();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        // 取得して
        String text = helloWorld();
        // 表示
        new AlertDialog.Builder(this).setMessage(text).show();
    }

実行すると表示されます

長々と書きましたが 終わりです
おつかれさまでした