Android Studio 3.1でNDKを使うまで

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”のリンクをクリックすると解決できる

以上

コメントを残す

メールアドレスが公開されることはありません。

*