ページへ戻る

− Links

 印刷 

cocos2d-x​/ver2系CMakeを使ってAndroid Studioに移行する :: NJF Wiki

xpwiki:cocos2d-x/ver2系CMakeを使ってAndroid Studioに移行する

始めに anchor.png[1] Edit [2]

2016年頃にcocos2d-x ver2系のEclipseのプロジェクトを全てAndroid Studioに移行しました。

cocos2d-x ver2系のプロジェクトをAndroid Studioに移行する[3]

そこで「Experimental Plugin」(実験的なプラグイン)使っていました。

http://tools.android.com/tech-docs/new-build-system/gradle-experimental[4]

実験的な物は実験的なままで終わったようで、このプラグインは2017年10月でサポートが切れました。

代わりに外部の開発ツールとして、CMakeやndk-buildなどを使うように以下のページで推薦されています。

https://developer.android.com/studio/projects/add-native-code[5]

ざっと見た感じでは、CMakeでcocos2d-xの作成したsoファイルをリンクするだけなら、簡単そうだったので、その方法でさらに以降を行いました。

2018年5月にその作業を行ったので、その手順をここでまとめています。

もし「Experimental Plugin」を使って移行している場合は、ここの手順でさらに移行が可能です。

そうでない場合はcocos2d-x ver2系のプロジェクトをAndroid Studioに移行する[3]の「gradle関連の修正」の章を以下の記述を参考に差し替えるとAndroid Studioへの移行が可能でしょう。

Page Top

Experimental Pluginの記述を取り除く anchor.png[6] Edit [7]

もしすでに「Experimental Plugin」を使っている場合はその記述を取り除きます。 もしそうでないなら、この章は飛ばしてください。

「Experimental Plugin」で付け加えたのは、「model」「apiLevel」「ndk」などで、以下のページを参考に、赤い部分を取り除けば良いでしょう。

http://tools.android.com/tech-docs/new-build-system/gradle-experimental[4]

また、もし

android.useDeprecatedNdk = true

という行があるなら、それは取り除きます。

Page Top

CMakeLists編集[8].txtファイルを追加する anchor.png[9] Edit [10]

プロジェクトのルートにCMakeLists編集[8].txtというファイルを作成します。 プロジェクトのルートはAndroid Studioの左側のタブ「Project File」を選んだときに、「アプリ名/アプリ名」とか「proj.android/アプリ名」とかになっているディレクトリです。 場所を間違えても、後に出てくるexternalNativeBuild編集[11]の設定をgradleに書いてビルドすると、「そこにはそのファイルが無いよ」といったメッセージが出るので、何度か試せばすぐに正しい場所が分かるでしょう。

その中にライブラリをリンクする記述を加えます。 例えばcocos2d-xが作成するsoファイルのデフォルト名である「libgame.so」をリンクするなら、以下のようにします。

add_library( game
             STATIC
             IMPORTED )

add_libraryはライブラリの追加を表します。 一行目はライブラリ名です。 先頭の「lib」と拡張子の「.so」は省くという命名ルールがあるので、「libgame.so」なら上記のように「game」だけとなります。

二行目は共有ライブラリ(SHARED)か静的ライブラリ(STATIC)かを指定します。 両方試してみましたが、どちらでも動きます。 別に共有する必要は無いのでSTATICで良いでしょう。 add_libraryには本来はソースファイルを書きますが、今回はコンパイル済みのライブラリなので、「IMPORTED」と指定します。

最後に、プロジェクトに付随するgradle(「Module:アプリ名」と横に書いてあるgradleファイル)のAndroidセクションに以下のようにして、追加したCMakeLists編集[8].txtを指定します。

   externalNativeBuild {
       cmake {
           path "CMakeLists.txt"
       }
   }

以上でライブラリの取り込みが行われるはずです。 gradleファイルをあまり変更しないので、「Experimental Plugin」を使うより簡単になっています。


Last-modified: 2018-10-06 (土) 00:01:19 (JST) (2030d) by njf