Ad

始めに anchor.png Edit

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への移行が可能でしょう。

Page Top

Experimental Pluginの記述を取り除く anchor.png Edit

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

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

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

また、もし

android.useDeprecatedNdk = true

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

Page Top

CMakeListsEdit.txtファイルを追加する anchor.png Edit

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

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

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


Front page   Edit Freeze Diff Backup Upload Copy Rename ReloadPrint View   New Page Page list Search Recent changes   Help   RSS of recent changes (RSS 1.0) RSS of recent changes (RSS 2.0) RSS of recent changes (RSS Atom) Powered by xpWiki
Counter: 625, today: 1, yesterday: 0
Princeps date: 2018-05-25 (Fri) 23:36:29
Last-modified: 2018-10-06 (Sat) 00:01:19 (JST) (257d) by njf
広告

ログイン

ユーザー名:


パスワード:





パスワード紛失


NJF