京都町アプリ小路上ル

京都在住のカフェ好きゲームクリエイターが書く、アプリ開発、ゲーム作り、あと京都カフェ情報

オンライン対戦が熱い! お手軽格闘ゲームがパワーアップして帰ってきた!

格闘ゲーム「木拳」 〜暇つぶしにオンライン対戦!無料アプリ〜

格闘ゲーム「木拳」iOS
格闘ゲーム「木拳」Android

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プロジェクトを作ります。

f:id:coffeebreakin:20180823231253p:plain

こんな感じになると思います。

この中のproj.androidをproj.android-studioにリネームします。

 

2. proj.android-studioのコピー

proj.android-studioをcocos2d-x v2のプロジェクトにコピーします。

f:id:coffeebreakin:20180823231541p:plain

こうなると思います。わざわざリネームしたのは以下のように使い分けられるようにです。

proj.android -> Eclipseビルド用

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でインポート

f:id:coffeebreakin:20180823234315p:plain

あとは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ってやればビルドできると思います。

 

エラーがでたらがんばって対応。