ページへ戻る

− Links

 印刷 

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

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

« Prev[3]  
*始めに [#i0104e1a]
2016年頃にcocos2d-x ver2系のEclipseのプロジェクトを全てAndroid Studioに移行しました。

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

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

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

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

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

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

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

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

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

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

*Experimental Pluginの記述を取り除く [#t9d6be21]

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

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

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

また、もし
 android.useDeprecatedNdk = true
という行があるなら、それは取り除きます。

*CMakeLists.txtファイルを追加する [#o112da14]

プロジェクトのルートにCMakeLists.txtというファイルを作成します。
プロジェクトのルートはAndroid Studioの左側のタブ「Project File」を選んだときに、「アプリ名/アプリ名」とか「proj.android/アプリ名」とかになっているディレクトリです。
場所を間違えても、後に出てくるexternalNativeBuildの設定を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.txtを指定します。

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

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

« Prev[3]