Windows上にCocos2d-x 3.16 Android開発環境を作成する

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にパスが通っているのを確認します。

以下の画像の順序で確認できます。

f:id:Takachan:20171029152833p:plain

f:id:Takachan:20171029152841p:plain

f:id:Takachan:20171029152846p:plain

自環境ではユーザー環境変数にEclipse Pleiades版に同梱のランタイムの位置を指定しています。

f:id:Takachan:20171029152852p:plain

AndroidStudio 3.0のインストール

AndroidStudio は、Java8への対応が長らくの間大変に微妙で、同じJVM互換のKotlin対応へ軸足を移したみたいです。3.0が2017年10月25日(水)に来たので、これをインストールします。

まず、AndroidStudioのページへアクセスします。

最近、日本語の表示もされるようになって、トップページにド直球ストレートでダウンロードリンクがあるのでそれをクリックします。

f:id:Takachan:20171029151756p:plain

いつもの同意するかどうかが出るのでそのまま同意するをクリック。

f:id:Takachan:20171029151932p:plain

インストーラーのダウンロードが開始されるので完了後、インストーラを実行します。

インストーラが起動したら、任意のパスへAndroidStudioをインストールします。

f:id:Takachan:20171029153555p:plain

かなり時間がかかりますが、完了する前待ちます。

f:id:Takachan:20171029153744p:plain

完了後、AndroidStudioが起動したら完了です。

AndroidStudioの日本語化

IDEが英語で大丈夫な方は飛ばしてください。

まず、AndroidStudioを日本語化します。

こちらのページに記事に新しい日本語化の手順が書いてあるので、内容に従いを日本語化します。

まず、PreiadesのぺージからWindows版のプラグインをダウンロードします。

f:id:Takachan:20171029154816p:plain

ダウンロードした"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... を選択します。

f:id:Takachan:20171029160431p:plain

そうすると以下にオプションファイルが作成されます。

// 標準では以下のパスになります。
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を開いたときは、以下のように全てが日本語化されます。

f:id:Takachan:20171029161511p:plain

Cocos2d-x 3.16をダウンロード

Cocos2d-x 3.16を導入します。まずは、公式サイトのダウンロードページから3.16をダウンロードしてきます。

f:id:Takachan:20171029162029p:plain

ダウンロードした、"cocos2d-x-3.16.zip"を解凍して任意のパスへ配置します。今回は以下フォルダへ配置します。

D:\ProgramFiles\Cocos\cocos2d-x-3.16

Apatch Antの導入

Apaych Antの公式ページからAntをダウンロードします。

ページ内の Download > Binary Distributions のリンクを選択して

f:id:Takachan:20171029162846p:plain

f:id:Takachan:20171029163037p:plain

"1.10.1 .zip archive"を取得して、解凍し中身を任意の位置へ保存します。

D:\ProgramFiles\ApacheAnt\apache-ant-1.10.1

Python実行環境の導入

公式サイトから、Python2.7.14を取得しインストールします。

f:id:Takachan:20171029163649p:plain

こちらは、インストーラをたたくだけですが、インストールオプションを以下の通り指定してインストールします。

Add python.exe tp Path > Will be install on local hard drive

f:id:Takachan:20171029164110p:plain

NDKのインストール

AndroidStudioの設定画面からNDKを導入します。AndroidStudioの設定画面からNDKをインストールします。(AndroidSDKの位置を、D:\ProgramFiles\AndroidSDK へ変更しています)3.16から(?)最新版のNDKで問題ないみたいです。

f:id:Takachan:20171029164841p:plain

確認画面で受諾を押して次へを選択します。

f:id:Takachan:20171029165004p:plain

かなり時間がかかるので終了するまで待ちます。

f:id:Takachan:20171029165141p:plain

インストール先はこの場合、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を選んで取得します)から「次へ」を選び最後に「完了」を選択します。

f:id:Takachan:20180818160850p:plain

そしてもう一度「Android 仮想デバイス・マネージャー」から再生ボタンを選ぶとエミュレーターが起動します。

f:id:Takachan:20180818161712p:plain

アプリをデバッグするときはこのまま起動させっぱなしにしておきます。

f:id:Takachan:20180818161946p:plain

プロジェクトの作成 + 実行

Cocos new コマンドで空のプロジェクトを作成します。D:\Developmentを作業フォルダへ設定して

コマンドラインより以下コマンドを入力します。

cocos new Sample -d D:\Development -p com.taka.sample -l cpp 

次にAndroidStudioからプロジェクトを開きます。

f:id:Takachan:20171029173145p:plain

プロジェクトを開くと、SDKが無いのでエラーが発生するので、gradle.propertiesを編集ししてSDKがあるバージョンに変更します。

PROP_COMPILE_SDK_VERSION=25
...
PROP_APP_ABI=armeabi-v7a:x86

”armeabi"はもう古くてサポート終了なので、代わりに-v7を指定します。(デバッグだけならx86のみの指定でも大丈夫です。実機では動かないですが。

変更したら、Gradleを再同期します。しばらくすると処理が進んでまた失敗するので、以下リンクをクリックして再度実行します。

f:id:Takachan:20171029173955p:plain

問題を自動で解決してくれるのでしばらく待ちます。

f:id:Takachan:20171029174051p:plain

AndroidStudioの更新がいろいろある場合ついでに更新します。

f:id:Takachan:20171029174158p:plainf:id:Takachan:20171029174729p:plain

次に作成した空のアプリをエミューレーター上で実行します。画面上部の緑色の三角形ボタンを押します。

f:id:Takachan:20180818162222p:plain

どのエミュレーターで起動するか聞かれるのでリストから対象を選んでOKを押します。

f:id:Takachan:20180818162326p:plain

そうするとソースコードのコンパイルが始まってめちゃくちゃかかるのでしばらく待ちます。

f:id:Takachan:20171029184041p:plain

しばらく待つとシミュレータに初期表示が以下の通り表示されます。(以下キャプチャーはちょっと画面が違いますがロゴを含む初期画面が表示されます。

f:id:Takachan:20171029184425p:plainf:id:Takachan:20180819001655p:plain

AndroidStuido上でブレークポイントを張る

普通にAndroidStudio上でC++のコードが閲覧・編集できるようになっているので以下のようにブレークポイントを設定するとブレークすることができます。エディタ上でブレークポインを設定します。

f:id:Takachan:20171103141515p:plain

次に、メニューからデバッグを選択します。(この時何かが足りないとコンポーネント・インストーラーが起動しますが、何かでもて終了するまで待って「完了」してください。

f:id:Takachan:20171103141657p:plain

以下表示がエミュレーター上にされるのでアタッチ待ちの表示がされるので少し待ちます。(初回はめちゃくちゃ時間がかかるかもしれません。

f:id:Takachan:20180819001957p:plain

ブレークポイントで停止して、赤い丸にチェックが入りその時の状態が確認できるようになります。(わかりに杭かもしれませんが、赤丸のブレークポイントで停止しています。

f:id:Takachan:20180819002225p:plain

最後に

最新版は少し手間が軽減されていますが、めんどくさすぎて途中で投げそうになりました…

  • 良い点
    • AndroidStudioからネイティブビルドできるようになってCocos runコマンドしなくてよくなった。
    • NDKやSDKがAndroid付属のもので動作するので特定のバージョンへ変更する手間がなくなってる
    • コンパイル速度が少し早くなった
  • 悪い点
    • 環境構築めんどくさすぎ
    • 結局AndroidStudioで開発しない → VisualStudioで開発したほうがIDEがイイ感じ
      • Win32 + VSで開発して最後にAndroidStudioでエミュレータ起動 + 実行ボタン押すだけになりそう
      • ブレークできるけど動作がものすごい遅いし不親切
    • Android関係の設定からくるエラーに悩まされる
      • 結局ノンプログラマーはどこかでエラーが出たら即詰むレベルの謎エラーが結構出る
      • Gradleの仕様とか覚えたくない、さっさとゲーム作らせろ

以前より格段に環境が整っていますが、初心者には相変わらず厳しいです。この手順も少し時間がたつとエラーが出まくるようになると思うのでもしエラーが出たらGoogleで調べまくることになりと思います。