一直以来都在win32工程下搞cocos2d-x的项目,没弄到过其他平台,今天学习了一下如何用android工程生成apk还是遇到了很多麻烦的。好在最终也成功生成了apk文件并且在手机上安装了,打开一看,一些UI的位置都乱了。好在游戏可以正常玩,没什么问题。
下边讲一下我遇到的问题和如何使用android工程生成apk。
前边的准备工作请看这里,官网的教程,主要就是搭建安卓环境什么的。
这里我主要讲一下android.mk文件的使用,..\proj.android\jni 这个文件在这里,用文本编辑工具打开就行。
主要需要修改:
一、首先是这个
LOCAL_SRC_FILES := hellocpp/main.cpp \
../../Classes/AppDelegate.cpp \
这里我们需要把自己class目录或者其他地方的.cpp文件添加上,格式模仿AppDelegate.cpp就可以。网上有一种方式可以自动添加cpp,对于cpp文件比较多的可以去查一下。
二、然后往下看,红色的部分是我后加上的,因为我使用了这几个目录里的头文件,如果生成apk的时候报一些找不到头文件的错误就在这里添加一下
LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../Classes
LOCAL_C_INCLUDES += $(LOCAL_PATH)/../../cocos2d/extensions
LOCAL_C_INCLUDES += $(LOCAL_PATH)/../../cocos2d
三、然后下边,这里默认是被注释掉的,最下边那个我工程里用到了,所以我去掉了前边的注释。如果编译的时候遇到一些错误说你用到的某些库里的头文件找不到就在这里改一下。
# LOCAL_WHOLE_STATIC_LIBRARIES += Box2d_static
# LOCAL_WHOLE_STATIC_LIBRARIES += cocosbuilder_static
#LOCAL_WHOLE_STATIC_LIBRARIES += spine_static
# LOCAL_WHOLE_STATIC_LIBRARIES += cocostudio_static
# LOCAL_WHOLE_STATIC_LIBRARIES += cocos_network_static
LOCAL_WHOLE_STATIC_LIBRARIES += cocos_extension_static
四、这里跟上边应该是一起的。最下边我也用到了,我把注释就打开了,现在一般就编译没问题了。
# $(call import-module,Box2D)
# $(call import-module,editor-support/cocosbuilder)
# $(call import-module,editor-support/spine)
# $(call import-module,editor-support/cocostudio)
# $(call import-module,network)
$(call import-module,extensions)
五、最后一个,这个问题可能是个人问题,我在Resources里有一些名字很长或者带中文名字的.png文件,这些文件在生成apk的时候会导致生成失败,如果编译的时候错误提示是你用的一些资源,那就改下名字或者把没用的资源删除。
最后成功生成apk了,\bin\debug 就在这个目录下,快安到手机上玩玩吧,如果还有疑问可以留言问我。