加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

cocos2dx 3.4 lua 编译android

发布时间:2020-12-14 17:21:12 所属栏目:百科 来源:网络整理
导读:假定我们现在有个纯洁的处女项目,cocos2dx3.4 lua项目,在E:cocoscocos2d-x-3.4cocosCodeMyGame下。 我们要把它添油加醋地发布到自己的Android手机上,拿来给完全不懂android开发的妹子装逼。我们需要怎么做呢? 首先,得给新项目加点东西,不能和cocos

假定我们现在有个纯洁的处女项目,cocos2dx3.4 lua项目,在E:cocoscocos2d-x-3.4cocosCodeMyGame下。

我们要把它添油加醋地发布到自己的Android手机上,拿来给完全不懂android开发的妹子装逼。我们需要怎么做呢?

首先,得给新项目加点东西,不能和cocos的自带例子完全一样吧!

好,我看例子的主场景和游戏场景都缺了个退出按钮,给丫加上!

打开E:cocoscocos2d-x-3.4cocosCodeMyGamesrcappviewsMainScene.lua,我用的sublime打开,你随便用啥打开~在

[plain] view plain copy
print ?
  1. cc.Menu:create(playButton)
  2. :move(display.cx,display.cy-200)
  3. :addTo(self)
这一行底下加上
copy
localexitButton=cc.MenuItemImage:create("ExitButton.png","ExitButton.png")
  • :onClicked(function()
  • os.exit();
  • end)
  • cc.Menu:create(exitButton)
  • 打开E:cocoscocos2d-x-3.4cocosCodeMyGamesrcappviewsPlayScene.lua,在

    copy

    self.gameView_=GameView:create()
  • :addEventListener(GameView.events.PLAYER_DEAD_EVENT,handler(self,self.onPlayerDead))
  • :start()
  • :addTo(self)
  • 下边一行加上

    copy

    :move(display.right_bottom)
  • :addTo(self)
  • exitButton:setAnchorPoint(cc.p(1,0));
  • 保存它们。可以在vs里看一下效果。

    然后我们需要知道我们现在距离把添油加醋过的项目发到android手机还有多远。

    双击运行E:cocoscocos2d-x-3.4setup.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%jrebin这是把jdk文件夹中的bin和jrebin都添加到系统环境中,使它们可以在系统中的任意位置被访问。

    3、在“系统变量”下新建变量名CLASSPATH变量值:.;%JAVA_HOME%lib;%JAVA_HOME%libdt.jar;%JAVA_HOME%libtools.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:cocoscocos2d-x-3.4setup.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-sdktools;E:android-sdkplatform-tools

    然后重新运行E:cocoscocos2d-x-3.4setup.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.6bin

    在下部“系统变量”中选Path,点“编辑”,在变量值的结尾添加;%ANT_ROOT%

    确定,确定,确定。然后关闭命令窗口,再运行一次E:cocoscocos2d-x-3.4setup.py。这时会提示你输入ANT_ROOT的路径,就输入e:apache-ant-1.9.6,点回车。这里的路径是上边那个ANT_ROOT环境变量的上级目录。

    奇迹发生了!命令窗口一闪而逝!这是告诉你……装逼之旅需要用的小工具都已经准备就绪了!

    然后,就算你再次运行E:cocoscocos2d-x-3.4下的setup.py,它还是会一闪而逝,即使像我这样APM到达十万以上的高手,也截不出一张好看的截图,下边这张凑合看:

    依稀可以看出,cocos所要求的所有小工具都已经found了……下边我们试着编译一个可以在android手机上安装的apk文件。

    在这之前,还有一步需要提前完成,那就是apk文件的签名文件——android.keystore。

    android.keystore的生成和使用

    进入E:jdkbin,空白处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:jdkbin中。

    这里有两个密码:password2是密匙库的密码,password1是我们刚刚生成的这个myFirstKeystore密匙的密码。一定要牢记。这个android.keystore不一定非要放在本目录下,放哪无所谓,我们暂时就先把它放在本目录下。

    第一次编译的时候会遇到一个错误导致编译失败:“文件名、目录名或卷标语法不正确”

    解决方法如下:使用sublime打开E:cocoscocos2d-x-3.4toolscocos2d-consolepluginsproject_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))

    有的盆友可能找到的和这一行不太一样,不要紧,不管是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:cocoscocos2d-x-3.4cocosCodeMyGame),空白处shift+右键,调出右键菜单,选在此处打开命令窗口。在打开的命令窗口中输入:

    cocos compile -p android

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

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

    cocos compile -p android-m release

    再次编译。



    文章来源http://blog.csdn.net/by_icefire/article/details/50130487

    (编辑:李大同)

    【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

      推荐文章
        热点阅读