AndroidNDK を使ってHelloWorldを表示するまで 2

前回の続き

現在のファイル構造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();
    }

実行すると表示されます

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

Atsumi3

したいことをします。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください