从Cocos2d-x 3.2项目打包成apk安卓应用文件,搭建安卓环境的步骤有点繁琐,但搭建一次之后,以后就会非常快捷!(涉及到3.1.1版本的,请自动对应3.2版本,3.x版本的环境搭建都是一样的)
一、软件
(1)VS2012(C++11特性在VS2012以上可以使用)
(2)Cocos2d-x官网源码 http://cocos2d-x.org/download
(3)分享资源:资源:https://github.com/inferjay/AndroidDevTools/ Ctrl + F 搜索:JDK、NDK、ANT、Python
(4) 可能需要VPN,没有VPN跳过(4)
Android SDK下载http://developer.android.com/sdk/index.html
Android NDk下载http://developer.android.com/tools/sdk/ndk/index.html
Android JDK下载http://www.oracle.com/technetwork/java/javase/downloads/index.html
Ant下载http://ant.apache.org/bindownload.cgi
(5)也可在我的云盘获取资源 : http://pan.baidu.com/s/1mhOKjDQ 注:有的资源可能不适合x86电脑,x86电脑可以(3)、(4)链接交叉获取资源
二、软件安装与环境配置
1、VS环境安装
2、JDK环境安装:右击计算机->属性->高级系统设置->环境变量(分为用户变量和系统变量);
1)安装:直接点击下一步即可安装完成。
2)配置环境变量:
a)在系统或用户变量中新加环境变量JAVA_HOME为JDK的安装路径,如:D:\Java;
b)把”%JAVA_HOME%\bin”加入到系统变量的Path中,记得用分号隔开。在用户变量中添加CLASSPATH变量为“.;%JAVA_HOME%\lib;”注意前面还有个点。JDK环境配置完成。
3)开始->运行->cmd或win+R进入DOS窗口:输入java -version查看JDK是否安装成功。重启DOS窗口,环境配置成功。
3、ANT环境安装:
1)解压apache-ant-1.9.3-bin.zip,ant是一个批处理工具;
2)设置ANT_ROOT,如:D:\cocos\apache-ant-1.9.3\bin,bin是我ant安装目录下的bin文件夹,ANT_ROOT环境变量在系统用户中添加
3)把“%ANT_ROOT%”加入到系统变量Path中,记得分号隔开。
4、ADT环境安装(包括SDK和Eclipse)
1)解压adt-bundle-windows-x86-20140624.zip;
2)设置ANDROID_SDK_ROOT环境,系统变量中增加。值如:”D:\cocos\adt-bundle-windows-x86-20140624\sdk“;
3)把“%ANDROID_SDK_ROOT%\tools”和“%ANDROID_SDK_ROOT%\platform-tools“加入系统Path变量中,记得分号隔开。
4)安装完ADT,将Eclipse目录下的eclipse.exe添加到桌面,双击即可完成eclipse的ADT环境的安装。
5)进入DOS下,输入:adb -h查看是否配置成功,关闭DOS重启即可配置成功。
5、安装NDK:Cocos2d-x3.2对NDK的要求r9d
1)解压android-ndk-r9d-windows-x86.zip;
2)设置NDK_ROOT环境变量,在系统变量中增加。值如:”D:\cocos\android-ndk-r9d“;
3)把”%NDK_ROOT%“加入到系统变量Path中,记得分号隔开。
6、安装Python:下
1)载并安装Python-2.7.5.msi(必须为2.7版本)
2)把Python的环境加入到系统Path变量中,值如:“C:\Python27”;
最终Path如下:“C:\Python27;%JAVA_HOME%\bin;%ANDROID_SDK_ROOT%\tools;%ANDROID_SDK_ROOT%\platform-tools;%ANT_ROOT%;%NDK_ROOT%;"
环境配置成功后重启或者关闭DOS或计算机即可更新环境变量。
进入Cocos2d-x3.2根目录,在DOS下执行setup.py看看以上路径是否存在并正确配置,如果成功如下图:并且在用户环境变量下自动生成COCOS_CONSOLE_ROOT环境变量。
三、创建Cocos2d-x3.2新项目
1、进入cocos2d-x-3.2\tools\cocos2d-console\bin;在DOS下输入:“cd /D 文件路径”可进入任意文件路径内。也可以在要进入的文件下使用shift+右击,选择在此处打开命令窗口,同样可以进入该目录。
2、在终端输入命令:cocos new 项目名称 -p 包名 -l cpp -d 项目路径,创建项目成功;
3、进入项目工程下的Cocos\MyCppGame\proj.win32文件夹中,双击.sln或者.vcxproj打开项目工程,F5运行程序即可;
四、打包android Apk(此处为转载)转载自:http://www.cnblogs.com/Richard-Core/p/3855130.html
然后就可以在项目目录下使用 cocos compile -p android方式编译APK文件了。
注意:在打包apk之前需要修改proj.android/jni文件夹下的Android.mk文件添加自己新增的CPP文件,这里的新增指的是非cocos2dx生成的项目文件(自己新增的文件)。一定要把自己新增的文件或文件夹包含进apk。
首先我们拿官方的 cpp-tests项目来试手吧!
按住shift键+鼠标右键 选择在此处打开命令窗口。
然后就可以使用 cocos compile -p android –-ap 20方式编译APK文件了(--ap 20是指定android平台)
漫长的等待吧,当然这里要提醒一点3.1版本用的是 android-20,如果E:\Android\sdk\platforms目录下没有android-20 请创建一个空的。
等待完毕之后 看下这个文件夹下的 apk吧!可以安装到手机上试一下了。(生成的APK一般在项目目录下\bin\debug\android,直接拷贝到手机,安装即可。)
五、异常处理
1、 Android platform not specified, searching a default one...
Can't find right android-platform for project :
"F:\cocos2d-x-3.1.1\tests\cpp-tests\proj.android".
The android-platform should be equal/larger than 20
如果你遇到这个问题,那么就要在
下创建一个空的android-20文件夹,这个问题坑了我很久!同时要查看命令是否是 –ap 20(双-)。
检查\proj.android目录下的project.properties是否是android-20
2、 编译时,提示找不到gcc工具链 (Couldn't find the gcc toolchain)。
这个问题也烦了我很久!去检查下ndk的配置路径!NDK_ROOT是否正确!然后3.1版本需要的NDK是最新的版本,去http://developer.android.com/tools/sdk/ndk/index.html#Installing下一个最新的版本r9d吧!
3、 如果遇到android api问题
找到运行进行更新,看缺哪个api就更新哪个,不过这个更新比较慢,原因google被禁了。
4、Android NDK: Invalid APP_STL value: c++_static 这个要修改jni/Application.mk
APP_STL := c++_static
NDK_TOOLCHAIN_VERSION=clang
APP_CPPFLAGS := -frtti -DCC_ENABLE_CHIPMUNK_INTEGRATION=1 -std=c++11 -fsigned-char
APP_LDFLAGS := -latomic
改成:
APP_STL := gnustl_static
# add -Wno-literal-suffix to avoid warning: warning: invalid suffix on literal; C++11 requires a space between literal and identifier [-Wliteral-suffix]
# in NDK_ROOT/arch-arm/usr/include/sys/cdefs_elf.h:35:28: when using ndk-r9
APP_CPPFLAGS := -frtti -DCOCOS2D_DEBUG=1 -std=c++11 -Wno-literal-suffix -fsigned-char
5、Android NDK: WARNING: APP_PLATFORM android-14 is larger than android:minSdkVersion 8
这是因为NDK指定的版本与minSdkVersion不一致的问题,修改AndroidManifest.xml文件 其中android:minSdkVersion修改为<uses-sdk android:minSdkVersion="20"/>
六、在Eclipse中运行:(此处为转载)转载自:http://blog.csdn.net/ku726999/article/details/38121927
Android开发的应该已经配好 SDK
1、 导入cocos2d-x的jar包
Eclipse菜单 File->Import->Android->Existing Android Code Into Workspace
2、 导入项目,同理
3、 此时项目会报错,因为没有引用Cocos2d-x 的库文件
解决:右击项目 选择 Properties->Android 拉到最下面
Remove掉报错的库文件路径,
Add 选择libcocos2dx
4、 在vs中如果新建 了 新的cpp文件,需要在 在Android.mk中添加相应的文件,格式与图中一致,注意相对路径
5、注意,如果更改了vs2012中的代码,就需要重新运行一下build_native.py
参考教程
教程1:http://www.mysjtu.com/page/M0/S962/962815.html
教程2:http://blog.csdn.net/myarrow/article/details/24474933
教程3:http://www.tuicool.com/articles/YrAZFv
教程4:http://blog.csdn.net/ku726999/article/details/38121927
本文转载自: http://www.itnose.net/detail/6090401.html