cocos2d-x v2をAndroid Studioでビルドする
自分用メモです
環境:
cocos2d-x v2.2.6
cocos2d-x v3.17
Android Studio 3.1.4
Android NDK r11c
1. 準備
cocos2d-x v3.17で空のcocosプロジェクトを作ります。
こんな感じになると思います。
この中のproj.androidをproj.android-studioにリネームします。
2. proj.android-studioのコピー
proj.android-studioをcocos2d-x v2のプロジェクトにコピーします。
こうなると思います。わざわざリネームしたのは以下のように使い分けられるようにです。
proj.android-studio -> Android Studioビルド用
3. libcocos2dxのコピー
下記のようにv3.17のlibcocos2dxフォルダをv2.2.6へコピーします。
cocos2d-x-3.17/cocos2d/cocos/platform/android/libcocos2dx ←これを
cocos2d-x-2.2.6/cocos2dx/platform/android/libcocos2dx ←ここにコピー
4. proj.androidの一部をコピー
以下のv2.2.6用のファイルをproj.android-studio/appにコピーして上書きします。
proj.android/AndroidManifest.xml
proj.android/jni
proj.android/libs
proj.android/res
proj.android/src
5. 設定ファイルを一部修正
v2.2.6でビルドできるように設定とかパスを修正します。
・gradle.properties
PROP_APP_ABI=armeabi-v7a ---> armeabi
PROP_BUILD_TYPE=cmake ---> ndk-build
・settings.gradle
libcocos2dxのパスを修正。
'../cocos2d/cocos/platform/android/libcocos2dx'
↓
'../../../cocos2dx/platform/android/libcocos2dx'
・app/build.gradle
targets 'MyGame' ---> 'cocos2dcpp'
NDK_TOOLCHAIN_VERSION=clang ---> 4.9
・app/jni/Android.mk
以下をinclude $(CLEAR_VARS)の下あたりにコピペ。
$(call import-add-path,$(LOCAL_PATH))
$(call import-add-path,$(LOCAL_PATH)/../../../../../)
$(call import-add-path,$(LOCAL_PATH)/../../../../../cocos2dx)
$(call import-add-path,$(LOCAL_PATH)/../../../../../external)
$(call import-add-path,$(LOCAL_PATH)/../../../../../cocos2dx/platform/third_party/android/prebuilt)
$(call import-add-path,$(LOCAL_PATH)/../../../../../extensions)
$(call import-add-path,$(LOCAL_PATH)/../../../../../CocosDenshion/android)
ソースコードのパスを下記例のように全て修正します(ヘッダーファイルも)。
../../Classes/xxxxxx
↓
../../../Classes/xxxxxx
6. Android Studioでインポート
あとはAndroid Studioがツールのバージョンが古いとか教えてくれるので、はいはい言いながら進めていけば準備が整います。
主に以下のようなことを言われると思います。
AndroidManifest.xml から minSdkVersion を削除。
cocos2dx/platform/android/java/src/org/cocos2dx/lib/Cocos2dxBitmap.java
FloatMath.ceil() ---> Math.ceil()
cocos2dx/Android.mk の修正(ビルド通らないため)
LOCAL_WHOLE_STATIC_LIBRARIES += cocos_libxml2_static
#LOCAL_WHOLE_STATIC_LIBRARIES += cocos_libxml2_static
extensions/Android.mk の修正(ビルド通らないため)
-network/WebSocket.cpp \
#LOCAL_WHOLE_STATIC_LIBRARIES += libwebsockets_static
#$(call import-module,external/libwebsockets/android)
最後に、
・local.propertiesでNDKのパスを指定
ndk.dir=/Applications/android_ndk/android-ndk-r11c
7. ビルド
Build -> Make Projectってやればビルドできると思います。
エラーがでたらがんばって対応。