UbuntuにCocos2d-xをインストールしてAndroidアプリ開発環境の作成
Android NDKのインストール
ダウンロード
http://developer.android.com/tools/sdk/ndk/index.html からダウンロードして展開。
Cocos2dxのインストール
ダウンロード
http://www.cocos2d-x.org/projects/cocos2d-x/wiki/Download からダウンロードして展開。
※展開したディレクトリ名を以降では $COCOS2DX_ROOT と記載する
Eclipseの設定
Android NDKの設定
[Window] -> [Preferences] で開いたウィンドウから [C/C++] -> [Build] -> [Environment] を選択。
[Add] ボタンクリックでウィンドウを展開、 [Name] に [NDK_ROOT]、 [Value] にAndroid NDKを展開したディレクトリ名を入力、 [OK] で終了。
Cocos2dxの設定
[Window] -> [Preferences] で開いたウィンドウから [General] -> [Workspace] -> [Linked Resources] を選択。
[New] ボタンをクリックしてウィンドウを展開し、 [Name] 欄に [COCOS2DX] と、 [Location] 欄に $COCOS2DX_ROOT を入力し、 [OK] で終了。
Cocos2dxをライブラリとしてEclipseにインポート
[File] -> [New] -> [Project] で開いたウィンドウから、 [Android] -> [Android Project from Existing Code] を選択。
[Root Directory] 欄に [$COCOS2DX_ROOT/cocos2dx/platform/android/java] と入力。
[Copy project into workspace] にはチェックを入れずに [Finish] で終了。
プロジェクトの作成
雛形の作成
Cocos2dxのツールでプロジェクトの雛形を作成する。
cd $COCOS2DX_ROOT/tools/project-creator create_project.py -project PROJECT_NAME -package PACKAGE_NAME -language LANG_NAME
PROJECT_NAME は任意のプロジェクト名。
PACKAGE_NAME は任意のパッケージ名。
LANG_NAME はC++なら"cpp"
雛形アプリ実行時エラー対応
作成したプロジェクトをEclipse経由で実機で起動しようとすると "format not a string literal and no format arguments [-Werror=format-security]" というエラーが発生した。
ビルドのオプションが原因っぽいが、オプションの変更の仕方が分からなかったので、ソースを下記のように変更して対応した。
$COCOS2DX_ROOT/CocosDenshion/android/SimpleAudioEngine.cpp 77c77 < LOGD("%s", deviceModel); --- > LOGD(deviceModel); $COCOS2DX_ROOT/CocosDenshion/android/opensl/OpenSLEngine.cpp 333c333 < LOGD("%s", errorInfo); --- > LOGD(errorInfo); $COCOS2DX_ROOT/CocosDenshion/android/opensl/SimpleAudioEngineOpenSL.cpp 41c41 < LOGD("%s", errorInfo); --- > LOGD(errorInfo); $COCOS2DX_ROOT/cocos2dx/platform/android/CCCommon.cpp 44c44 < __android_log_print(ANDROID_LOG_DEBUG, "cocos2d-x debug info", "%s", buf); --- > __android_log_print(ANDROID_LOG_DEBUG, "cocos2d-x debug info", buf); 54c54 < __android_log_print(ANDROID_LOG_DEBUG, "cocos2d-x debug info", "%s", pszFormat); --- > __android_log_print(ANDROID_LOG_DEBUG, "cocos2d-x debug info", pszFormat);