cocos2dx中Android.mk的万能模板

cocos2dx工程打包成Android APK当然少不了编辑android工程目录下的Android.mk文件,主要工作就是把Classes目录下的*.cpp文件添加进来进行编译。

下面就分Android工程在Eclipse和AndroidStudio两种情况来说明。

Eclipse

在项目的 proj.android\jni 目录下的 Android.mk 文件中,需要对 LOCAL_SRC_FILES 进行赋值,将项目中用到的cpp文件都写入,自动生成的内容一般都是这样:

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

如果想要添加新增cpp文件,常理来说就是依样画瓢“../../Classes/XXX.cpp”但是对程序员来说需要手动一个一个添加简直是不科学!因此有网上的牛人就找到了新的方法:
使用通配符(wildcard)的方式就可以解决

写法如下:

SRC_FILES := hellocpp/main.cpp
SRC_FILES += $(wildcard $(LOCAL_PATH)/../../Classes/*.cpp) SRC_FILES += $(wildcard $(LOCAL_PATH)/../../Classes/*/*.cpp)
LOCAL_SRC_FILES :=  $(SRC_FILES:$(LOCAL_PATH)/%=%)

上面的写法会搜索Classes目录和子目录中的所有的cpp文件,改变一下写法就能一劳永逸!

以上写法参考:
http://blog.163.com/long_wtf/blog/static/18555327020149144495734/

Android-studio工程

在项目 proj.android-studio中,由于jni文件夹放到了proj.android-studio\app中,因此要在上面的模板上多加一层回退 /.. 。
因此最后的模板如下:

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

$(call import-add-path,$(LOCAL_PATH)/../../../cocos2d)
$(call import-add-path,$(LOCAL_PATH)/../../../cocos2d/external)
$(call import-add-path,$(LOCAL_PATH)/../../../cocos2d/cocos)

LOCAL_MODULE := cocos2dcpp_shared

LOCAL_MODULE_FILENAME := libcocos2dcpp

SRC_FILES := hellocpp/main.cpp
SRC_FILES += $(wildcard $(LOCAL_PATH)/../../../Classes/*.cpp)
SRC_FILES += $(wildcard $(LOCAL_PATH)/../../../Classes/*/*.cpp)
LOCAL_SRC_FILES :=  $(SRC_FILES:$(LOCAL_PATH)/%=%)

LOCAL_CFLAGS := -DUSE_FILE32API -DGL_GLEXT_PROTOTYPES=1

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

# _COCOS_HEADER_ANDROID_BEGIN
# _COCOS_HEADER_ANDROID_END


LOCAL_STATIC_LIBRARIES := cocos2dx_static

# _COCOS_LIB_ANDROID_BEGIN
# _COCOS_LIB_ANDROID_END

include $(BUILD_SHARED_LIBRARY)

$(call import-module,.)

# _COCOS_LIB_IMPORT_ANDROID_BEGIN
# _COCOS_LIB_IMPORT_ANDROID_END

编译时,输入命令为 cocos run -p android –android-studio 就能在proj.android-studio目录编译生成所有cpp的 .so 库使用

这里推荐使用android-studio作为开发工具,方便多渠道打包,具体需要配置build.gradle和Manifest,build.gradle的配置请参考上一篇
cocos2dx工程部署到android-studio中,build.gradle的写法

相关文章

    本文实践自 RayWenderlich、Ali Hafizji 的文章《...
Cocos-code-ide使用入门学习地点:杭州滨江邮箱:appdevzw@1...
第一次開始用手游引擎挺激动!!!进入正题。下载资源1:从C...
    Cocos2d-x是一款强大的基于OpenGLES的跨平台游戏开发...
1.  来源 QuickV3sample项目中的2048样例游戏,以及最近《...
   Cocos2d-x3.x已经支持使用CMake来进行构建了,这里尝试...