京都町アプリ小路上ル

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

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

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

格闘ゲーム「木拳」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ってやればビルドできると思います。

 

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

 

ザクザク芝刈りの次の世界観

ザクザク芝刈りwの続編をストーリー付きで作りたいと考えています。

 

だれでも隣の芝生は青く見えるものです。

 

そんな中突然生えてくる「赤い草」。

 

この赤い草の正体はなんなのか?

 

その悪い芝を刈ってくれる芝刈りの人とは?

 

芝刈り屋さんの罪と罰・・・

 

そんな世界を描きます。

 

f:id:coffeebreakin:20180420214440p:plain

 

f:id:coffeebreakin:20180420214452p:plain

 

f:id:coffeebreakin:20180420214502p:plain

 

f:id:coffeebreakin:20180420214522p:plain

 

f:id:coffeebreakin:20180420214540p:plain

 

f:id:coffeebreakin:20180420214551p:plain

 

 

タイトルは「ザクザク芝刈りDX」でしょうか。

 

現行作品は下記リンクからどうぞ。

 

iOS版のザクザク芝刈りw

Android版のザクザク芝刈りw

 

Android Studioで自動的に含まれるパーミッション(android.permission.WAKE_LOCK)の削除方法

環境:

Android Studio 3.0

Google Play Services 11.6.0

 

Gradleで

compile 'com.google.android.gms:play-services-analytics:11.6.0'

とかやると自動的に不要なパーミッションが付いてしまいます。

 

android.permission.WAKE_LOCK

 

Google公式のアナリティクス実装ガイドには、オプションだから入れなくてもいいって書いてあるんだけど、Gradleは全部入れてしまう。そう自動的に。

 

なのでこれをAndroid Studioのエディター上で、簡単なマウスクリックだけで削除する方法を見つけました。

 

まず、AndroidManifest.xmlを開きます。

 

f:id:coffeebreakin:20171126033753p:plain

 

次に、「Merged Manifest」をクリックします。

 

f:id:coffeebreakin:20171126033950p:plain

 

すると、最終的にapkに含まれるAndroidManifest.xmlを見ることができます。これは便利ですね!

 

で、よく見ると、Google Analyticsによって自動的にandroid.permission.WAKE_LOCKが追加されていることがわかります。

 

なので、これを右クリックして「Remove」しちゃいましょう。

 

f:id:coffeebreakin:20171126034237p:plain

 

さらに、不要なサービスやレシーバーも合わせて削除しましょう。

com.google.android.gms.analytics.AnalyticsReceiver

com.google.android.gms.analytics.AnalyticsService

 

(たぶんこれ削除しとかないとパーミッションが無いとかでクラッシュするかと思います。ここのサイトにもそのような記述があります。)

 

f:id:coffeebreakin:20171126034803p:plain

 

これで完了です!