Android StudioによるCocos2d-xのビルドとSDKBOXの利用

こんにちは。今回はCocos2d-x でサポートされたAndroid StudioとSDKBOXについて紹介したいと思います。

Android Studioのv.1.3でNDKがサポートされ、Cocos2d-x v3.7でもAndroid Studioがサポートされました。Google からAndroidの開発環境としてEclipseのサポートを終了することがアナウンスされたため、この対応によって今後はCocos2d-xでも、EclipseからAndroid Studioを利用した開発がメインになるでしょう。

また、Cocos2d-x v3.7ではSDKBOXという、サードパーティのSDKを簡単にインストールするための機能が追加されています。

今回はそれらの機能を試すために、SDKBOXでGoogle AnalyticsのSDKを導入し、そのアプリをAndroid Studioでビルドしてみます。

本記事では、以下の環境で検証を行いました。

  • Cocos2d-x v3.7.1
  • Android Studio 1.3.1
  • Google Analytics Plugin Versions (v1.2.2)

Android Studio によるビルド

まず、Android Studio を用いてCocos2d-xのビルドを行う方法について説明します。

Cocos2d-xとAndroid Studioのインストールについては省略します。

プロジェクトの作成

空のプロジェクトを作成します。以下のコマンドを実行することで

$ cocos new AnalyticsExample –p jp.co.applibot –l cpp –d ~/

1つハマった点として、setup.pyを実行し上記プロジェクト作成コマンドを実行しても、proj.android-studioが作成されなかったことです。以下コマンドを実行後再度プロジェクト作成を行ったら無事作成されました。

$ source .bash_profile

プロジェクトが作成されると、iOS用のプロジェクト「proj.ios_mac」とandroid用のプロジェクト「proj.android-studio」というディレクトリが作成されています。

01.png

アプリのビルド

iOSについては.xcodeprojを開きビルドを行うだけで問題なく実行できると思います。

Androidについては、Android Studioの「Open an existing Android Studio project」を選択しproj.android-studioプロジェクトを開きます。

環境によると思いますが今回は開いたところウィンドウ下部に以下のようなメッセージが表示されたため、リンクをクリックし「jdk-7u79-macosx-x64.dmg」をダウンロードし、インストールしました。Android NDKのインストールなども表示されたメッセージをクリックすることでインストールしました。

02.png03.png

JDKのパス設定は以下を参考にしました。

Android Studio で JDK を設定する

テスト端末をつないで以下ボタンをクリックします。

04.png

しかし以下のようなエラーが出てしまいました。

java.lang.UnsatisfiedLinkError: Couldn't load cocos2dcpp from loader dalvik.system.PathClassLoader

調べてみると現在はビルドはAndroid Studioだけでは完結せず、コマンドで行う必要があるようです。

$ cocos run –s ~/AnalyticsExample -p android -android-studio

ビルドが進みだしたのですが途中で、antが見つからないとエラーが出たためhomebrew でインストールしました。

$ brew install ant

.bash_profileに自動で追加されたANT_ROOTとパス異なっていたので、以下のように修正しました。

# Add environment variable ANT_ROOT for cocos2d-x
export ANT_ROOT=/usr/local/bin

.bash_profile修正後は以下コマンドを実行してください

$ source .bash_profile

以上の修正を行い、改めてビルドをすることで、実機で実行できました!

05.png

SDKBOXの導入

先述の通り、SDKBOXはサードパーティのSDKを、Cocos2d-xで簡単に導入するためのツールです。クロスプラットフォームな課金処理や主要な解析ツール・広告ユニットのSDKを簡単に導入することができ、作業時間の短縮が見込めます。

今回は、Google Analyticsを導入して、アクセス解析を行いたいと思います。

このページを参考に、実装を進めていきます。

まず、上記ページからsdkboxのzipファイルをダウンロードし、展開後のsdkbox_installerの中身を/usr/local/binに移動します。

次に、先ほど作成したプロジェクトディレクトリに移動して、sdkboxのコマンドを実行し、SDKをインストールします。

$ cd ~/AnalysticExample
$ sdkbox import googleanalytics

_______ ______ _     _ ______   _____ _     _

|______ |      |____/ |_____] |     | ___/

______| |_____/ |   _ |_____] |_____| _/   _

Copyright (c) 2015 Chukong Technologies Inc. v0.5.6.19

downloading package sdkbox-googleanalytics_v1.2.2.6.tar.gz

Please reference the online documentation to finish the integration:

http://sdkbox-doc.github.io/en/plugins/googleanalytics/v3-cpp/

Installation Successful J

これでGoogle AnalyticsのSDKのインストールが完了しました。あとはResources以下に自動で作成されるstdbox_config.jsonにトラッキングコードを記載します。

{
    "android": {
        "GoogleAnalytics": {
            "trackingCode": ”<TRACKING_CODE>”
        }
    },
    "ios": {
        "GoogleAnalytics": {
            "trackingCode": ”<TRACKING_CODE>”
        }
    }
}

これで設定は終了したので、実際にトラッキングができるか確かめます。

HellowWorldScene::init()に以下のようなコードを入れて、Xcodeでアプリをビルドして実行してみます。

sdkbox::PluginGoogleAnalytics::logScreen("HelloWorldScene");
sdkbox::PluginGoogleAnalytics::logEvent("Achievement", "Unlocked", "Slay 10 dragons", 5);

06.png07.png

きちんとトラッキングできていました!

Androidでも確かめてみます。先ほどと同様、以下コマンドでビルドします。

$ cocos run -s ~/AnalyticsExample -p android -android-studio

こちらも問題なくトラッキングできていました!

まとめ

以上、新しい環境を構築する場合所々ハマることもありますが、無事ビルドすることができ、またSDKBOXを利用したGoogleAnalyticsによるトラッキングについてはコードをたったの2行追加するだけで実現することができました。

Android Studioを利用した商用での開発実績はまだ多くないかもしれませんが、前述のとおり、Google からAndroidの開発環境としてEclipseのサポートを終了することがアナウンスされたため、Android Studioを利用した開発がメインになるのも時間の問題でしょう。

また、SDKBOXについては作業時間を大幅に削減できる点が魅力的です。

今後各ツールのバージョンアップ等により手順が多少変わってくることがあるかもしれませんが何かしらの参考になれば幸いです。