Cocos2d-x 3.16 が2017年10月11日(水)にリリースされました。今までAndroid開発環境作るのが死ぬほどめんどくさかったのですが、少し改善されたらしいので導入手順をまとめてみました。
補足:
AndroidStudioを使用する場合、Cocos2d-x のバージョンは「3.17」を使用してください。3.16で記事を書いていますが、3.16をでAndroidStudio3.x系を使用するとコンパイルできないなどのトラブルになる可能性があります。
環境
構築する環境と、最終目的は以下の通りです。
- Windows10
- Cocos2d-x 3.16(C++使用)
- AndroidStudio 3.0上からNDKネイティブビルド & 実行
実行環境はGenyMotion- 最近はAVDのほうが安定しているので実行環境は標準のAVDで大丈夫です
作業内容
Cocos2d-xでC++開発環境を作成する場合、CocosCreatorなどのソフトは使用せずに以下手順で環境作成することになります。ゼロベースから環境作ると結構大変です。また途中で記事が不正確だったりバージョンが違ったりでエラーが出た場合、理由を自力で調べる事になるのでご了承ください。
- Java8のインストール
- AndroidStudioのインストール (+日本語化)
- Cocos2d-x 3.16をダウンロード
- Apatch Antの導入
- Python実行環境の導入
GenyMotionのインストール- プロジェクトの作成 + 実行
Java8のインストール
特に、説明することはないので適当に、、、
Javaの公式サイトからJavaをダウンロードするか、自分でJDKを好きな場所へ配置し、環境変数で、JAVA_HOMEにパスが通っているのを確認します。
以下の画像の順序で確認できます。
自環境ではユーザー環境変数にEclipse Pleiades版に同梱のランタイムの位置を指定しています。
AndroidStudio 3.0のインストール
AndroidStudio は、Java8への対応が長らくの間大変に微妙で、同じJVM互換のKotlin対応へ軸足を移したみたいです。3.0が2017年10月25日(水)に来たので、これをインストールします。
まず、AndroidStudioのページへアクセスします。
最近、日本語の表示もされるようになって、トップページにド直球ストレートでダウンロードリンクがあるのでそれをクリックします。
いつもの同意するかどうかが出るのでそのまま同意するをクリック。
インストーラーのダウンロードが開始されるので完了後、インストーラを実行します。
インストーラが起動したら、任意のパスへAndroidStudioをインストールします。
かなり時間がかかりますが、完了する前待ちます。
完了後、AndroidStudioが起動したら完了です。
AndroidStudioの日本語化
IDEが英語で大丈夫な方は飛ばしてください。
まず、AndroidStudioを日本語化します。
こちらのページに記事に新しい日本語化の手順が書いてあるので、内容に従いを日本語化します。
まず、PreiadesのぺージからWindows版のプラグインをダウンロードします。
ダウンロードした"pleiades-win.zip"を解凍して、中身の"plugins"以下の"jp.sourceforge.mergedoc.pleiades"を以下のようなるよう配置します。
// 標準では以下のパスになります。 C:\Users\[PC名]\.AndroidStudio3.0\jp.sourceforge.mergedoc.pleiades
次にVMオプションを設定します。
なんでもよいのでAndroidStudioを起動して適当なプロジェクトを作成し、IDEの画面を表示します。
底から Help > Edit Custom VM Options... を選択します。
そうすると以下にオプションファイルが作成されます。
// 標準では以下のパスになります。 C:\Users\[PC名]\.AndroidStudio3.0\studio64.exe.vmoptions
作成するとIDE上にファイル編集画面が表示されるので以下内容を記述します。
# custom Android Studio VM options, see https://developer.android.com/studio/intro/studio-config.html -Xms512m -Xmx1280m -XX:ReservedCodeCacheSize=240m -XX:+UseConcMarkSweepGC -XX:SoftRefLRUPolicyMSPerMB=50 -Dsun.io.useCanonCaches=false -Djava.net.preferIPv4Stack=true -Djna.nosys=true -Djna.boot.library.path= -da -Xverify:none -javaagent:C:/\Users/[PC名]/.AndroidStudio3.0/jp.sourceforge.mergedoc.pleiades//pleiades.jar
最後の行は自分の環境の古パスを書き込んでください。書き込んだら保存してAndroidStudioを終了します。(間違えると起動しなくなるのでご注意を…)
次にIDEを開いたときは、以下のように全てが日本語化されます。
Cocos2d-x 3.16をダウンロード
Cocos2d-x 3.16を導入します。まずは、公式サイトのダウンロードページから3.16をダウンロードしてきます。
ダウンロードした、"cocos2d-x-3.16.zip"を解凍して任意のパスへ配置します。今回は以下フォルダへ配置します。
D:\ProgramFiles\Cocos\cocos2d-x-3.16
Apatch Antの導入
Apaych Antの公式ページからAntをダウンロードします。
ページ内の Download > Binary Distributions のリンクを選択して
"1.10.1 .zip archive"を取得して、解凍し中身を任意の位置へ保存します。
D:\ProgramFiles\ApacheAnt\apache-ant-1.10.1
Python実行環境の導入
公式サイトから、Python2.7.14を取得しインストールします。
こちらは、インストーラをたたくだけですが、インストールオプションを以下の通り指定してインストールします。
Add python.exe tp Path > Will be install on local hard drive
NDKのインストール
AndroidStudioの設定画面からNDKを導入します。AndroidStudioの設定画面からNDKをインストールします。(AndroidSDKの位置を、D:\ProgramFiles\AndroidSDK へ変更しています)3.16から(?)最新版のNDKで問題ないみたいです。
確認画面で受諾を押して次へを選択します。
かなり時間がかかるので終了するまで待ちます。
インストール先はこの場合、D:\ProgramFiles\AndroidSDK\ndk-bundle になります。
Cocos2d-xのセットアップ
コマンドプロンプトより以下のスクリプトを実行します。
D:\ProgramFiles\Cocos\cocos2d-x-3.16\setup.py
それぞれ入力項目に以下の通り入力します。
->Please enter the path of NDK_ROOT (or press Enter to skip):D:\ProgramFiles\AndroidSDK\ndk-bundle ->Please enter the path of ANDROID_SDK_ROOT (or press Enter to skip):D:\ProgramFiles\AndroidSDK ->Please enter the path of ANT_ROOT (or press Enter to skip):D:\ProgramFiles\ApacheAnt\apache-ant-1.10.1\bin
Geny Motionのインストール
普通にインストールするだけなので割愛。
AndroidStudioにGenyMotionのPlugin入れる事。
AndroidのAVDの作成
Androidのエミュレータを作成します。
メニューにある以下赤枠のアイコンをクリックして、「Android 仮想デバイス・マネージャー」を起動します。
「仮想デバイスの作成」を選んで中身のOSのバージョンを選んで(存在しない場合Downloadを選んで取得します)から「次へ」を選び最後に「完了」を選択します。
そしてもう一度「Android 仮想デバイス・マネージャー」から再生ボタンを選ぶとエミュレーターが起動します。
アプリをデバッグするときはこのまま起動させっぱなしにしておきます。
プロジェクトの作成 + 実行
Cocos new コマンドで空のプロジェクトを作成します。D:\Developmentを作業フォルダへ設定して
コマンドラインより以下コマンドを入力します。
cocos new Sample -d D:\Development -p com.taka.sample -l cpp
次にAndroidStudioからプロジェクトを開きます。
プロジェクトを開くと、SDKが無いのでエラーが発生するので、gradle.propertiesを編集ししてSDKがあるバージョンに変更します。
PROP_COMPILE_SDK_VERSION=25 ... PROP_APP_ABI=armeabi-v7a:x86
”armeabi"はもう古くてサポート終了なので、代わりに-v7を指定します。(デバッグだけならx86のみの指定でも大丈夫です。実機では動かないですが。
変更したら、Gradleを再同期します。しばらくすると処理が進んでまた失敗するので、以下リンクをクリックして再度実行します。
問題を自動で解決してくれるのでしばらく待ちます。
AndroidStudioの更新がいろいろある場合ついでに更新します。
次に作成した空のアプリをエミューレーター上で実行します。画面上部の緑色の三角形ボタンを押します。
どのエミュレーターで起動するか聞かれるのでリストから対象を選んでOKを押します。
そうするとソースコードのコンパイルが始まってめちゃくちゃかかるのでしばらく待ちます。
しばらく待つとシミュレータに初期表示が以下の通り表示されます。(以下キャプチャーはちょっと画面が違いますがロゴを含む初期画面が表示されます。
AndroidStuido上でブレークポイントを張る
普通にAndroidStudio上でC++のコードが閲覧・編集できるようになっているので以下のようにブレークポイントを設定するとブレークすることができます。エディタ上でブレークポインを設定します。
次に、メニューからデバッグを選択します。(この時何かが足りないとコンポーネント・インストーラーが起動しますが、何かでもて終了するまで待って「完了」してください。
以下表示がエミュレーター上にされるのでアタッチ待ちの表示がされるので少し待ちます。(初回はめちゃくちゃ時間がかかるかもしれません。
ブレークポイントで停止して、赤い丸にチェックが入りその時の状態が確認できるようになります。(わかりに杭かもしれませんが、赤丸のブレークポイントで停止しています。
最後に
最新版は少し手間が軽減されていますが、めんどくさすぎて途中で投げそうになりました…
- 良い点
- AndroidStudioからネイティブビルドできるようになってCocos runコマンドしなくてよくなった。
- NDKやSDKがAndroid付属のもので動作するので特定のバージョンへ変更する手間がなくなってる
- コンパイル速度が少し早くなった
- 悪い点
- 環境構築めんどくさすぎ
- 結局AndroidStudioで開発しない → VisualStudioで開発したほうがIDEがイイ感じ
- Win32 + VSで開発して最後にAndroidStudioでエミュレータ起動 + 実行ボタン押すだけになりそう
- ブレークできるけど動作がものすごい遅いし不親切
- Android関係の設定からくるエラーに悩まされる
- 結局ノンプログラマーはどこかでエラーが出たら即詰むレベルの謎エラーが結構出る
- Gradleの仕様とか覚えたくない、さっさとゲーム作らせろ
以前より格段に環境が整っていますが、初心者には相変わらず厳しいです。この手順も少し時間がたつとエラーが出まくるようになると思うのでもしエラーが出たらGoogleで調べまくることになりと思います。