Android Studio 2.1で開発したNDKを利用したアプリを、Android Studio 3.1に移植するまでの流れをまとめました。環境はUbuntu 18.04を想定。
準備編
- udevルールを追加する
$ cat /etc/udev/rules.d/51-android.rules SUBSYSTEM=="usb", ATTR{idVendor}=="0fce", MODE="0666", GROUP="plugdev" $ sudo service udev reload
- 32bit依存関係をインストールする
$ sudo apt-get install libz1:i386 libncurses5:i386 libbz2-1.0:i386 libstdc++6:i386
インストール編
- Android Studio 3.1.4をダウンロードする
- ZIPを展開する
- binにパスを通す
- studio.shを起動する
- Android Studioのインストールを行う
- インストール後、起動画面でConfigure->SDK Managerを選択する
- CMake, LLDB, NDKを選択してインストールする
プロジェクト作成編
- 新しいプロジェクトを作る
- Include C++ supportにチェックを付ける
- ソースファイルを配置する
- app/src/main/java に Javaソースコードを置く
- app/src/main/cpp に C/C++ ソースコードを置く
- File->New->Folder->Assets Folder
- app/src/main/assets にアセットを置く
- app/src/main/resにリソースを配置する
- AndroidManifest.xmlを既存のものに置き換える(activityを記述する)
- CMakeLists.txtにライブラリのソースコードの名前を全部書く
add_library( # Sets the name of the library. suika # Sets the library as a shared library. SHARED # Provides a relative path to your source file(s). src/main/cpp/cmd_bg.c src/main/cpp/cmd_bgm.c src/main/cpp/cmd_ch.c )
- 利用しているライブラリがあれば、CMakeLists.txtのtarget_link_librariesに追加する
target_link_libraries( # Specifies the target library. suika jnigraphics # Links the target library to the log library # included in the NDK. ${log-lib} )
- 下記のエラーメッセージが出る
Failed to find Build Tools revision 27.0.3
- “Install Build Tools 27.0.3 and sync project”のリンクをクリックすると解決できる
以上