当前位置 : 主页 > 手机开发 > 其它 >

cocos2dx 3.4 lua 编译android

来源:互联网 收集:自由互联 发布时间:2021-06-13
假定我们现在有个纯洁的处女项目,cocos2dx3.4 lua项目,在E:\cocos\cocos2d-x-3.4\cocosCode\MyGame下。 我们要把它添油加醋地发布到自己的Android手机上,拿来给完全不懂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打开,你随便用啥打开~在

[plain]  view plain  copy  print ?
  1. cc.Menu:create(playButton)  
  2.         :move(display.cx, display.cy - 200)  
  3.         :addTo(self)  
这一行底下加上
[plain]  view plain  copy  print ?
  1. local exitButton = cc.MenuItemImage:create("ExitButton.png", "ExitButton.png")  
  2.         :onClicked(function()  
  3.             os.exit();  
  4.         end)  
  5.     cc.Menu:create(exitButton)  
  6.         :move(display.cx, display.cy - 285)  
  7.         :addTo(self)  
打开E:\cocos\cocos2d-x-3.4\cocosCode\MyGame\src\app\views\PlayScene.lua,在

[plain]  view plain  copy  print ?
  1. self.gameView_ = GameView:create()  
  2.         :addEventListener(GameView.events.PLAYER_DEAD_EVENT, handler(self, self.onPlayerDead))  
  3.         :start()  
  4.         :addTo(self)  
下边一行加上

[plain]  view plain  copy  print ?
  1. local exitButton = cc.MenuItemImage:create("ExitButton.png", "ExitButton.png")  
  2.         :onClicked(function()  
  3.             os.exit();  
  4.         end)  
  5.     cc.Menu:create(exitButton)  
  6.         :move(display.right_bottom)  
  7.         :addTo(self)  
  8.     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 -keyalg RSA -validity 36500 -keystore android.keystore

简单说下意思。keytool -genkey是jdk提供的一个命令,用来生成一个签名文件。第一个参数-alias myFirstKeystore表示这个keystore的小名是myFirstKeystore。第二个参数-keyalg RSA意思是设定一种加密算法,一般照着这么写就行。第三个参数 -validity 36500是说这个签名文件的有效期是多久,按天算。第四个参数-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处,其中有两处在一行上,这一行是:

[plain]  view plain  copy  print ?
  1. command = "%s clean %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))  

有的盆友可能找到的和这一行不太一样,不要紧,不管是cocos.CMDRunner.convert_path_to_cmd(sdk_root)这样调用或者self._convert_path_to_cmd(sdk_root)这样调用,只要你找到了这句有两个convert_path_to_cmd在一句代码中的代码,把

cocos.CMDRunner.convert_path_to_cmd(sdk_root)

改为

sdk_root

就可以了。就是把转换路径的方法去掉,直接使用它的参数。保存。


编译cocos2dx项目到android手机平台

进入你的项目目录(E:\cocos\cocos2d-x-3.4\cocosCode\MyGame),空白处shift+右键,调出右键菜单,选在此处打开命令窗口。在打开的命令窗口中输入:

cocos compile -p android

点回车,cocos就开始编译你的MyGame项目了。默认编译的是debug版的。-p 表示要编辑到的平台是android;如果在后边添加一个参数 -m release就可以编译release版的了~其实compile命令还有很多参数,这里就不再一一讲解了~等它编译完成,你就可以在E:\cocos\cocos2d-x-3.4\cocosCode\MyGame\runtime\android文件夹中找到热乎的MyGame-debug.apk文件了!

当然,这是debug版的安装包。如果拿来在妹子面前装逼还有点糙……你可以再编译一次,这次加上-m release参数:

cocos compile -p android -m release

再次编译。



文章来源 http://blog.csdn.net/by_icefire/article/details/50130487
网友评论