对于刚开始尝试做游戏的同学来说,自己的demo打包可能会遇到很多奇葩的问题,我在刚开始打包的时候也遇到了很多坑,这里把打包过程全部叙述一遍,希望对大家能有一些帮助。(cocos2d-x版本为3.2)
-工具安装
工具主要需要NDK \ SDK \ ANT,资源可以在客户端的环境与工具中找到下载。(尽量安装在一个文件路径下,这样比较好管理)
-环境配置
在环境变量中配置上述三项的路径,格式如下。注意一定要严格按照提示的变量名命名,提示可以在cocos2d-x版本解压路径下打开命令窗口(可以shift + 右键 选命令窗口)输入Python setup.py 看到,上面会提示需要配置三个变量NDK_ROOT,ANDROID_SDK_ROOT,ANT_ROOT。变量值即为三个工具的安装路径,例如我的路径配置NDK_ROOT:D:\soft\android-ndk-r8e-windows-x86_64\android-ndk-r8e;ANDROID_SDK_ROOT:D:\soft\adt-bundle-windows-x86_64-20140321\sdk;ANT_ROOT:D:\soft\apache-ant-1.9.6\bin。新建好三个变量之后,需要将变量名前后加上%,然后加入到系统变量中path后面,注意,这里需要加入的配置尽量都加入到系统变量中,另外配置环境变量的注意点在Ramp up中有比较详细的说明,可以照上面介绍的要点配置。
-配置结果检测
进入工程目录下,打开命令窗口,输入 cocos compile -p android - -ap 加Android版本号,版本号可以在sdk安装路径下找到,例如我的D:\soft\adt-bundle-windows-x86_64-20140321\sdk\platforms,路径下可以看到是android-19,则版本号就是19,注意不要加android-,直接跟数字就可以了(例如 cocos compile -p android --ap 19)。
-打包过程中可能得问题
NDK_TOOLCHAIN_VERSION=clang
APP_CPPFLAGS := -frtti -DCC_ENABLE_CHIPMUNK_INTEGRATION=1 -std=c++11 -fsigned-char
APP_LDFLAGS := -latomic
-换成:<code> APP_STL := gnustl_static
APP_CPPFLAGS := -frtti -DCOCOS2D_DEBUG=1 -std=c++11 -Wno-literal-suffix -fsigned-char
-再打开Android.mk文件,找到 <code>
LOCAL_SRC_FILES := hellocpp/main.cpp \
../../Classes/AppDelegate.cpp \
../../Classes/HelloWorldScene.cpp
照此格式将自己的源文件全部加进去,不然会找不到源文件,另外找到LOCAL_WHOLE_STATIC_LIBRARIES,将自己所用到的静态库前面的注释符#去掉,如果不知道要去掉哪些,则可以将前面的#全部去掉;后面的$(call import-module, ....)同样如此。
这样再次执行cocos compile -p android --ap 加Android版本号 命令,即可打包成功,打好的包会在工程目录下生成一个bin文件,找到apk包即是。
-工具安装
工具主要需要NDK \ SDK \ ANT,资源可以在客户端的环境与工具中找到下载。(尽量安装在一个文件路径下,这样比较好管理)
-环境配置
在环境变量中配置上述三项的路径,格式如下。注意一定要严格按照提示的变量名命名,提示可以在cocos2d-x版本解压路径下打开命令窗口(可以shift + 右键 选命令窗口)输入Python setup.py 看到,上面会提示需要配置三个变量NDK_ROOT,ANDROID_SDK_ROOT,ANT_ROOT。变量值即为三个工具的安装路径,例如我的路径配置NDK_ROOT:D:\soft\android-ndk-r8e-windows-x86_64\android-ndk-r8e;ANDROID_SDK_ROOT:D:\soft\adt-bundle-windows-x86_64-20140321\sdk;ANT_ROOT:D:\soft\apache-ant-1.9.6\bin。新建好三个变量之后,需要将变量名前后加上%,然后加入到系统变量中path后面,注意,这里需要加入的配置尽量都加入到系统变量中,另外配置环境变量的注意点在Ramp up中有比较详细的说明,可以照上面介绍的要点配置。
-配置结果检测
再次在cocos2d-x版本解压路径下输入Python setup.py命令,如果看到COCOS_CONSOLE_ROOT is found .... ,NDK_ROOT is found.... , ANDROID_SDK_ROOT is found ....,ANT_ROOT is found .....即表示环境已配置完成。
进入工程目录下,打开命令窗口,输入 cocos compile -p android - -ap 加Android版本号,版本号可以在sdk安装路径下找到,例如我的D:\soft\adt-bundle-windows-x86_64-20140321\sdk\platforms,路径下可以看到是android-19,则版本号就是19,注意不要加android-,直接跟数字就可以了(例如 cocos compile -p android --ap 19)。
-打包过程中可能得问题
在win32中编译运行成功之后,一般基本就可以直接打包了,如果在打包最后出现Error,则根据提示查看问题所在,一般是提示一些静态库无法找到,这时进入到工程,找到proj.Android\jni目录,用notepad++打开Application.mk,
NDK_TOOLCHAIN_VERSION=clang
APP_CPPFLAGS := -frtti -DCC_ENABLE_CHIPMUNK_INTEGRATION=1 -std=c++11 -fsigned-char
APP_LDFLAGS := -latomic
-换成:<code> APP_STL := gnustl_static
APP_CPPFLAGS := -frtti -DCOCOS2D_DEBUG=1 -std=c++11 -Wno-literal-suffix -fsigned-char
-再打开Android.mk文件,找到 <code>
LOCAL_SRC_FILES := hellocpp/main.cpp \
../../Classes/AppDelegate.cpp \
../../Classes/HelloWorldScene.cpp
照此格式将自己的源文件全部加进去,不然会找不到源文件,另外找到LOCAL_WHOLE_STATIC_LIBRARIES,将自己所用到的静态库前面的注释符#去掉,如果不知道要去掉哪些,则可以将前面的#全部去掉;后面的$(call import-module, ....)同样如此。
这样再次执行cocos compile -p android --ap 加Android版本号 命令,即可打包成功,打好的包会在工程目录下生成一个bin文件,找到apk包即是。