cocos2dx 3.4 lua 编译android
前端之家收集整理的这篇文章主要介绍了
cocos2dx 3.4 lua 编译android,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
假定我们现在有个纯洁的处女项目,cocos2dx3.4 lua项目,在E:\cocos\cocos2d-x-3.4\cocosCode\MyGame下。
我们要把它添油加醋地发布到自己的Android手机上,拿来给完全不懂android开发的妹子装逼。我们需要怎么做呢?
首先,得给新项目加点东西,不能和cocos的自带例子完全一样吧!
好,我看例子的主场景和游戏场景都缺了个退出按钮,给丫加上!
打开E:\cocos\cocos2d-x-3.4\cocosCode\MyGame\src\app\views\MainScene.lua,我用的sublime打开,你随便用啥打开~在
- cc.Menu:create(playButton)
- :move(display.cx,display.cy-200)
- :addTo(self)
这一行底下加上
下边一行加上
copy
:move(display.right_bottom)
:addTo(self)
exitButton:setAnchorPoint(cc.p(1,0));
保存它们。可以在vs里看一下效果。
然后我们需要知道我们现在距离把添油加醋过的项目发到android手机还有多远。
双击运行E:\cocos\cocos2d-x-3.4\setup.py,可以看到如下结果:
它告诉我们,COCOS_CONSOLE_ROOT 和 COCOS_TEMPLATES_ROOT 已经就绪,还差NDK_ROOT,就是android-ndk还没弄好,我们下边就来搞定它。
在下一步之前,需要先安装个额外的小东西~
JDK 下载、安装、环境变量配置
jdk下载地址(64位),下载完成后安装。安装过程中会提示安装一个额外的程序,叫做Java,也需要安装。jdk安装在E盘根目录下jdk文件夹中,Java安装在E盘根目录Java文件夹中(同样仅仅是为了把所有相关的安装放在一起)。即jdk的安装目录是E:\jdk,而Java的安装路径是E:\Java。
接下来配置它们的环境变量;环境变量在哪里配置不在多说。
1、在“系统变量”下新建变量名 JAVA_HOME变量值为E:\jdk (即你jdk的安装文件夹),JAVA_HOME变量名的作用是:%JAVA_HOME%相当于E:\jdk。就是说%JAVA_HOME%可以在下边配置环境变量的时候,当作字符串“E:\jdk”来用;当jdk的安装路径改变时只修改JAVA_HOME的变量值就可以完成jdk的环境变量配置。
2、在“系统变量”下找到Path,点编辑。在变量值结尾添加;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin。这是把jdk文件夹中的bin和jre\bin都添加到系统环境中,使它们可以在系统中的任意位置被访问。
3、在“系统变量”下新建变量名CLASSPATH变量值:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar原理同上。CLASSPATH为java加载类(class or lib)路径,只有类在classpath中,java命令才能识别,前边要加英文点号 . 表示当前路径。
NDK_ROOT 下载、安装、环境变量配置
android-ndk下载地址,记得选Windows 64-bit,文件名是android-ndk-r10e-windows-x86_64.exe;下载的文件是个自解压文件,下载下来之后,直接双击解压。颜值定理。解压完成之后把整个android-ndk-r10e文件夹复制到E盘根目录下(仅仅是为了把所有相关的安装放在一起);
环境变量配置:计算机-->高级系统设置-->高级-->环境变量...-->系统变量-->Path-->编辑-->添加;E:\android-ndk-r10e,然后确定,确定,确定。注意,前边有个英文分号,作用是把不同的环境变量值隔开,当要添加的环境变量值在最后时,变量值结尾处不要加这个分号。
关掉命令窗口,重新运行E:\cocos\cocos2d-x-3.4\setup.py,这时会命令窗口会提示输入android-ndk的路径,使用英文输入e:\android-ndk-r10e,点回车。可以看到提示“Add NDK_ROOT environment variable ...”和“Added NDK_ROOT=e:\android-ndk-r10e”,就是说这个环境变量已经配置成功了!
ANDROID_SDK下载、安装、环境变量配置
android-sdk下载地址,记得选Recommended(推荐的),文件名是installer_r24.3.4-windows.exe;下载下来的是个安装文件,直接双击安装,下一步-->下一步-->为所有使用这台电脑的人安装-->安装在E盘根目录下android-sdk文件夹中-->最后勾选Start SDK Manager,完成。
然后自动打开了Android SDK Manager~多么神奇~
在Android SDK Manager中你要选择的,也就是你要下载的,其实是android系统的各个版本,还有工具和扩展。这里tools勾选默认的3项,Tools(Preview Channel)全选(就一个),本文出生是最新版本android是6.0,所以勾选个Android6.0的API,然后再勾选个你现在使用的调试手机的android系统的版本对应的android版本API,我选的是6.0、5.0.1、4.0.3、2.2,Extras中默认选中的即可。android所有版本全选也可,不过勾选的都会被下载……总大小可能在10G以上,根据颜值定理,你下载的时候必然会蛋碎一地……然后点右下角的Install xx packages-->Accept License(接受所有许可)-->确定。
开始蛋疼的等待吧……
一千年以后……
终于,下载完成了!
在环境变量Path的变量值里加入androidSDK中platform-tools和tools的目录路径:;E:\android-sdk\tools;E:\android-sdk\platform-tools
然后重新运行E:\cocos\cocos2d-x-3.4\setup.py;根据提示,需要输入android-sdk的安装目录,这里输入:E:\android-sdk,回车。提示ANDROID_SDK_ROOT已经添加。这一步又完成了~
下边是
ant下载、安装、环境变量配置
ant下载地址,下载下来后是一个压缩文件-->解压到当前文件夹-->然后把apache-ant-1.9.6文件夹同样放到E盘根目录下(还是为了统一……好吧我是强迫症)。
ant环境变量配置:
在“环境变量”界面上部的“xxx的用户变量”中“新建”一个变量ANT_ROOT,值为e:\apache-ant-1.9.6\bin
在下部“系统变量”中选Path,点“编辑”,在变量值的结尾添加;%ANT_ROOT%
确定,确定,确定。然后关闭命令窗口,再运行一次E:\cocos\cocos2d-x-3.4\setup.py。这时会提示你输入ANT_ROOT的路径,就输入e:\apache-ant-1.9.6,点回车。这里的路径是上边那个ANT_ROOT环境变量的上级目录。
奇迹发生了!命令窗口一闪而逝!这是告诉你……装逼之旅需要用的小工具都已经准备就绪了!
然后,就算你再次运行E:\cocos\cocos2d-x-3.4下的setup.py,它还是会一闪而逝,即使像我这样APM到达十万以上的高手,也截不出一张好看的截图,下边这张凑合看:
依稀可以看出,cocos所要求的所有小工具都已经found了……下边我们试着编译一个可以在android手机上安装的apk文件。
在这之前,还有一步需要提前完成,那就是apk文件的签名文件——android.keystore。
android.keystore的生成和使用
进入E:\jdk\bin,空白处shift+右键,调出右键菜单,选在此处打开命令窗口。在打开的命令窗口中输入
keytool-genkey-alias myFirstKeystore -keyalgRSA-validity36500 -keystoreandroid.keystore
简单说下意思。keytool-genkey是jdk提供的一个命令,用来生成一个签名文件。第一个参数-alias myFirstKeystore表示这个keystore的小名是myFirstKeystore。第二个参数-keyalgRSA意思是设定一种加密算法,一般照着这么写就行。第三个参数-validity36500是说这个签名文件的有效期是多久,按天算。第四个参数-keystore 用来指定密钥库的名称。
点回车之后会提示输入密匙库口令,这里咱们输入个password1;然后再输入一次这个password1,然后会提示输入姓名、组织单位名称、组织名称、城市名、省名、国家代码等,如果不想填可以直接点回车跳过,它会取默认值“Unknown”。如果想填,建议全部使用英文。最后有个确认信息,询问所填的内容是否正确,用中文输入“是”然后点回车;然后会提示输入myFirstKeystore的密匙口令,这里我们输入password2点回车,然后再确认输入一次,点回车。一个全新的keystore就生成了,保存在E:\jdk\bin中。
这里有两个密码:password2是密匙库的密码,password1是我们刚刚生成的这个myFirstKeystore密匙的密码。一定要牢记。这个android.keystore不一定非要放在本目录下,放哪无所谓,我们暂时就先把它放在本目录下。
第一次编译的时候会遇到一个错误导致编译失败:“文件名、目录名或卷标语法不正确”
解决方法如下:使用sublime打开E:\cocos\cocos2d-x-3.4\tools\cocos2d-console\plugins\project_compile下的build_android.py文件(不是双击运行),ctrl+F搜索 convert_path_to_cmd,你会找到5处,其中有两处在一行上,这一行是:
copy
command="%sclean%s-f%s-Dsdk.dir=%s"%(cocos.CMDRunner.convert_path_to_cmd(ant_path),build_mode,buildfile_path,cocos.CMDRunner.convert_path_to_cmd(sdk_root))