13
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

cocos2d-xでextensionsを含めてandroid向けにコンパイルする

Posted at

目的

Xcodeを使用してアプリ制作をしていて、android向けにコンパイルする

前提

  • Xcodeでの作成
  • extensions系(例えばScale9Spriteなど)を利用している

問題

まずは、
cocos2d-x|githubのREADMEに書かれている通りコマンドを実行してみます

cocos run -p android -j 4

そうするとコンパイルエラーになります( extensions系 をつかっていると)
吐かれるエラーログは指定の仕方によりますが…

No such file or directory #include "extensions/cocos-ext.h".

であったり、直接指定している場合は

No such file or directory #include "GUI/CCControlExtension/CCScale9Sprite.h".

こんな感じで出力される

原因

コンパイルルールなんかが記述されている{your_proj_root}/proj.android/jni/Android.mkにextension系を読み込む記述がないため

対策

デフォルトだとこんな内容

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := cocos2dcpp_shared

LOCAL_MODULE_FILENAME := libcocos2dcpp

LOCAL_SRC_FILES := hellocpp/main.cpp \
                   ../../Classes/AppDelegate.cpp \
                   ../../Classes/HelloWorldScene.cpp

LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../Classes

LOCAL_WHOLE_STATIC_LIBRARIES := cocos2dx_static
LOCAL_WHOLE_STATIC_LIBRARIES += cocosdenshion_static
LOCAL_WHOLE_STATIC_LIBRARIES += box2d_static


include $(BUILD_SHARED_LIBRARY)

$(call import-module,2d)
$(call import-module,audio/android)
$(call import-module,Box2D)

これに extensions系 を読み込むように記述する
箇所は2箇所

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := cocos2dcpp_shared

LOCAL_MODULE_FILENAME := libcocos2dcpp

LOCAL_SRC_FILES := hellocpp/main.cpp \
                   ../../Classes/AppDelegate.cpp \
                   ../../Classes/HelloWorldScene.cpp

LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../Classes

LOCAL_WHOLE_STATIC_LIBRARIES := cocos2dx_static
LOCAL_WHOLE_STATIC_LIBRARIES += cocosdenshion_static
LOCAL_WHOLE_STATIC_LIBRARIES += box2d_static
# 追加
LOCAL_WHOLE_STATIC_LIBRARIES += cocos_extension_static


include $(BUILD_SHARED_LIBRARY)

$(call import-module,2d)
$(call import-module,audio/android)
$(call import-module,Box2D)
# 追加
$(call import-module,extensions)

これで extensions も含めてコンパイルしてくれます

補足

extensions系 ってなに?

{your_proj_root}/cocos2d/extensions/配下に設置されているもの
#include "GUI/...."的な者達ですかね

おわりに

ココらへんの知識は乏しくて、エラー&トライでやった結果なので
おかしなところとかあれば、コメンとなりリプなりでご指摘頂けると嬉しいです

13
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?