win8下cocos2dx3.2移植android平台及代码打包APK

  cocos2dx程序不能只在VS2012下运行,迟早是要搬运到Android和IOS上的。Windows下移植IOS平台先搁下不说比较困难,而且只有越狱的苹果机才可以运行,而且毕竟IOS高端、小众。这里主要讲一下移植Android,windows下cocos2dx打包成APK和在eclipse下运行的方法。
本文接上篇win8下环境配置的博客,在cocos2dx和VS2012的配置完成后( 如果还没有配置cocos2dx+VS2012的环境,请最好先参考博客进行配置:http://blog.csdn.net/u012200908/article/details/38056917
cocos2dx和VS2012相比配置Android十分简单。在配置完成之后,这个时候系统变量path中有了cocos2dx的目录和Python的目录,这些也是移植Android平台要使用的。
篇幅长主要是因为笔者网上看过很多教程讲的不够透彻,许多新手看不懂,自己不想这样。所以这篇博客图片较多,造成长篇累牍。还请各位读者见谅。
下面先说一下准备工作配置Android有关的环境,用的东西包含如下:
1、
      首先需要JDK,我用版本是1.8.0.11,64位
      官网:http://www.oracle.com/technetwork/java/javase/downloads/index.html
      可以上网搜一下,或者百度云(百度云共享的为64位,如果有人是win8或者win732位的系统还是按上面的网址去官网下载吧):
      http://pan.baidu.com/s/1dDzRQBf

2、
Android ADT
     官网可以直接下最新的(7月2号的版本):
     http://developer.android.com/sdk/index.html
        我的百度网盘有64位的可以下
         http://pan.baidu.com/s/1bn8dwXT
            
     解压到你习惯的目录下(建议某磁盘根目录)
     
如果你想使用我的版本
(14年3月21号的)
以避免可能出现的问题,我认为应该不会有的。。
     网盘里面也有64位的可以下:
     http://pan.baidu.com/s/1sj15u1n

3、
Android NDK
     这个很关键,不要下r10版本,会有问题,这个是因为官方的原因。
参见
http://cn.cocos2d-x.org/tutorial/show?id=1187
这里选择r9d版本,我实在是在官网找不到下载链接,因为只看到r10的一堆链接,其他版本一个下载链接没找到。。。
最后找到一个网址:
     https://dl.google.com/android/ndk/android-ndk-r9d-windows-x86_64.zip
     https://dl.google.com/android/ndk/android-ndk-r9d-windows-x86.zip
     后缀有64即为64位系统
     可以去我的百度云下载64位NDK:
     http://pan.baidu.com/s/1jGsWan8
     先不急着解压

4、下载ANT
     这里使用的是1.9.4的ANT
     官网直接下载zip包:
     http://ant.apache.org/bindownload.cgi
     先不急着解压
     
5、现在将NDK和ANT全部解压到ADT下面去,以方便管理
     现在ADT下面有
     NDK
     SDK
     Eclipse
     ANT
     SDK Manager.exe
     

这里要强调一下,CMD运行要尽量都在管理员身份运行的情况下,请从查看所有程序,发送一个快捷方式到桌面,每次右键以管理员身份运行。然后CD到你要用的目录。

下面正式开始:

 step 1:
      安装JDK,记住JDK的路径,这里要强调一点,就是你文件夹路径里面不可以有空格和中文字符。所以你不要装在默认的program files里面。建议自己找个地方装JDK。
      计算机-右键属性-高级系统设置-环境变量


点击进入环境变量,在系统变量下点击新建
     JAVA_HOME     C\Java\jdk1.8.0_11//就是你JDK的路径,这里不需要加分号
     CLASS_PATH     .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;//前面有个点,请大家注意


再找到path变量,要加三个东西
     (1)在最前面加上:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
     (2)path里面还要再加上Android SDK下面tools文件夹的路径。

     例如笔者的是:C:\adt-bundle-windows\sdk\tools;

     请使用绝对路径,加上这个路径之后,在使用android list targets查看sdk版本的时候就不会出现Android不是内部或者外部命令这样的错误。

     (3)然后把ANT的变量也一起配置一下,有备无患。path中继续添加     ANT目录\bin;//建议直接找到那个目录然后将路径复制黏贴到里面,但注意后面要加上\bin




step2:
     上面的工作完成之后,我们需要再次运行setup.py将NDK_ROOT、SDK_ROOT、ANT_ROOT关联到cocos。
     打开CMD,cd到cocos2dx目录下
     输入setup.py,回车。还记得一开始只配置cocos2dx和VS时候的运行结果吗?
     结果如下,他会提示你Please enter the path of NDK_ROOT

参照我下面输入的一个个输入进去,建议拷贝路径之后右键黏贴,然后回车。(我的路径有点儿长,没有改ADT的名字,后来我全部删除重新调试过,大家可能会发现我的ADT前后不一样,这个大家知道一下就行了。一定要输入自己的正确的路径)
回车就会添加一个变量。到最后ANT_ROOT设置完了之后,这一块也就完了。然后他会提示你重启命令提示符或重启系统,这里重启下CMD就行了。如果有问题再重启吧。



可以在关闭之后再次在这个文件夹打开CMD,再次运行setup.py验证是否生效。
或者输入set NDK_ROOT、set ANDROID_SDK_ROOT、set ANT_ROOT查看



这里请注意,笔者再次提醒,图片笔者是两次截图,所以路径有的地方是adt-bundle-windows-x86_64-20140702,后来笔者改用了20140321的版本,造成其他地方路径是修改了之后的adt-bundle-windows,如果有不便还请谅解一下啦。

step3:
构建Android工程(apk)
下面新建一个工程,这里不做赘述。
工作目录内,shift + 右键 打开CMD
cocos new helloworld -l cpp -p com.losers.game
在工作目录下创建了一个helloworld项目(这里要注意,如果工作目录路径里面有空格建议删除工作目录重建,否则会编译出错)
在构建APK之前,先打开ADT中的Eclipse,启动SDK Manager,更新一下SDK,至少保证一个版本的SDK可以使用。但这个版本要新一些,笔者选择了4.4.2,因为太旧了会有OpenGL的问题,建议大家也更新一下4.4.2,大有用处。这里先说一下,后面具体解释。
更新SDK的时候可能存在Fetching很慢的问题,请点击Tools——option——下面的Others中,把第一个选项勾中即可。
相信速度会快很多。而且下载成功率也会大大提高。其他的方法比如修改hosts文件在此不冗述,请大家自己百度一下方法。



  在确保有至少一个完整可用版本的SDK后,后面要用的是cocos2d-console,compile的命令
     在helloworld目录下打开CMD下输入下列命令查看帮助
     cocos compile --help或者 cocos compile -h


然后输入cocos compile -p android -j 4,打包APK。这儿说一下,要在管理员模式下执行命令提示符,以防出现问题。
即编译当前目录的安卓工程,可以同时有4个编译任务,让4核机器满负荷跑。
这里当然可以根据你的手机Android版本加上 --ap 数字(10 —— 20,目前是这样的,以后除了新版本数字会增加)这里我选择了缺省,让他自己找。因为原理上是可以自己找的,我要全方面判断是否有问题。

     版本对应的数字我想在用SDK Manager的时候大家都会看到

     如果你不知道,可以在CMD中输入android list targets查看,如下图

     笔者SDK只有2.3.3和4.4.2的,对应数字是10和19

然后执行
cocos compile -p android -j 4,打包APK

根据它提示的路径去找到那个让我们又爱又恨的APK
跟同学借个手机来跑跑试试。结果如下,版本Android4.0:


这里要说一下,笔者在打包APK的时候遇到了一些问题,说java.exe不是内部或者外部命令,也不是可运行的程序,也不是批处理文件。
     这个应该是一开始的JAVA环境变量配置有问题造成的,你要看看你的跟java有关的变量路径里面是否有类似于program files一样有空格的路径。如果有,请卸载JDK重装再别的路径没有中文和空格的文件夹里面,然后修改路径,重启电脑,以管理员方式运行CMD重试一下,笔者就是这样解决了问题。

step4:
eclipse下跑程序
     继续回到前面打开的Eclipse,将我们要打开的项目给整进来。
     但在这之前,最好查看NDK和SDK路径是否正确
     window——preferences——Android查看SDK和NDK,检查location是否正确 
     
     如果你用的新版本(7月2号版本的)你会发现,卧槽?为啥怎么找NDK都找不到啊?这个原因我也不知道。需要往Eclipse的plugins文件夹下拷贝一个jar包,叫做com.android.ide.eclipse.ndk_23.0.2.1259578.jar
     这是下载地址:
     http://pan.baidu.com/s/1i3xbM0d
     这个NDK里面没有应该是没有什么影响的,我是在配置环境出错的时候病急乱投医了,找了各种方法,觉得这个还是加上好,所以就说一下。幸亏我用的不是这个版本,不过我的大神舍友说,这个NDK就算空着也不会影响。。。。。
     
     下面开始导入我们的项目
     import-Existing Android Code Into Workspace
     选择我们的项目中proj.android文件-Finish
     这里一定不要勾选copy projects into workspace,否则后果很严重,笔者亲测。。。。

这个时候程序会有错误,是因为类库没有引入,以后每次都要引用一下了。你需要找到你创建的项目所在的地方。
我是在C:\cocosworkspace\helloworld\cocos2d\cocos\platform\android\java\src
下面,(就是原项目里面)里面有个org文件夹,复制一下,拷贝到我们用Eclipse打开的helloworld项目的src中去。提示是否重写,选yes,这样错误就没有了。


下面重点来了。
     第一点:我们可以看到,这个地方默认的版本是Android2.3.3,笔者就是在这个地方被困住了两天两夜,我新建了2.3.3的AVD,也勾选了Use Host GPU,但就是报相关OPENGL的错误。后来我多方查证才知道openGl在Android2.2之后才支持真机,所以默认版本是2.3.3,模拟器版本4.0.3之后才能跑,我只想说,cocos2dx和Android都太(哔哔)了(自己和谐一下)。
     
     所以这个地方,在项目上右键——properties——切换到4.4.2版本,等一会儿Eclipse为我们自动切换。
切换了版本之后,新建4.4.2的AVD,勾选下方的Use Host GPU,这个AVD就是我们要用的模拟器。

第二点:同时这里要注意,如果以后你编写cocos程序,增加了cpp,你需要到Android.mk文件中将cpp添加进去
下面是Android.mk文件(jnj文件夹下)

     要在LOCAL_SRC_FILES下面写上你所有的cpp文件,这里要注意,除了最后一个cpp以外,每个后面都有一个斜杠。


以上都完成之后,启动AVD运行一下,大家请看~当当当当~
这里我调整成了较宽的AVD。



到此配置就完成了!~~~~~

因为我学cocos2dx的时间也不是很长,只有一个多月,写这篇博客是一位cocos2dx吧的吧友提出的疑问,我就自己配置了一下,虽然在cocos2dx下做项目,但我是用Xcode和VS2012。打包APK和一直Android平台是另一位队友的任务。这位吧友也让我学到了不少,知道了自己的不足,持续了一个多周总算是把Mac下和windows 8.0下cocos2dx3.2移植Android平台的教程都写了出来。如果大家遇到问题或者发现我的博客里面有错误请留言,我会尽力给大家解答以及修正博客。

2014.8.6 22:45
Mr.Losers










本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/277776.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【转】用Fiddler做抓包分析详解

1.为什么是Fiddler? 抓包工具有很多,小到最常用的web调试工具firebug,达到通用的强大的抓包工具wireshark.为什么使用fiddler?原因如下: a.Firebug虽然可以抓包,但是对于分析http请求的详细信息,不够强大。模拟http…

Mac下cocos2dx3.2移植android平台详细教程

本文是cocos2dx移植android的第二篇教程,笔者深深感觉,cocos2dx移植android平台是永远的痛啊。。。下面讲一下笔者花费一个周研究的Mac OS下的cocos2dx3.2android配置首先要准备的东西(1)下载cocos2dx3.2 http://www.cocos2d-x.o…

robotframework(12)修改用户密码(从数据库查询短信验证码)

一、testcase:修改用户密码需要6个参数(短信验证码、设置的新密码、用户已登录的userid及用户唯一标识、接口校验码、被修改的手机号),故先准备这些参数 二、用户登录请求,(获取userid、用户唯一标识&#…

Mac OS使用技巧之二:修改变量Path解决android: command not found

前一阵子,一直在搞Mac OS和win8下cocos2dx移植android平台的方法。一步步从无到有的慢慢摸索出来。最近发现了一个小问题,有关环境变量配置的写下来分享给大家。就是我们在windows8下查看已有android SDK的版本,需要在CMD里面输入&#xff1a…

Jenkins架构

一. Master 和slave.下图阐述了master-slave交互的架构:在上面这个分布式的构建环境中,Jenkins master主要负责如下:接收构建触发(比如,一个提交到GitHub后)发送通知(比如,在构建失败…

Mac OS使用技巧之三:发射无线网络信号的方法

许多人知道在windows下可以直接借助各种辅助软件来直接发射wifi信号,比如360wifi,猎豹wifi。或者可以直接在命令行里面设置。许多人却不知道Mac系统也有方便快捷发射无线信号的功能。下面讲一下利用Mac OS发射无线网络信号的方法。前提:你的电…

纪实:对CSDN博客系统的一些质疑

我是一个对编程充满热情的在校大学生,本来我是怀着满腔热情来到CSDN写博客,记录和分享自己的学习经历。却被这糟糕的博客系统一次次的泼冷水。写这篇博客确实是因为心中十分不甘和特别生气,所以我决定要把自己的遭遇写出来,我自己…

php框架之laravel

常见问题: 1. 访问网站500错误 这是因为laravel的缓存路径没有找到 laravel缓存文件路径是在 config/cache.php中设置,默认存在storage文件夹中 解决:需要保证storage/framework下面创建 sessions, views, cache 文件夹并确保可写权限 转载于:https://ww…

MySQL的命令合集

2019独角兽企业重金招聘Python工程师标准>>> MySQL客户端操作 $db$是数据库名称$table$是数据表名称$field$是数据表里的字段名称有些语句最后加上**/G**可以使结果更美观数据库相关 创建数据库,修改数据库 create database $db$; 使用默认设置create database $db$…

Mac OS使用技巧之四:修改打开不同格式视频的默认播放器

这里说一下视频播放的一些问题。大家知道Mac OS中有自带的一款播放器,叫做Quicktime Player。这已经是一款很牛X的软件了,但他的定位并不是单纯的视频播放软件,而是数字媒体制作平台,可以用于视频格式的转换,视频的录制…

爬取汽车之家新闻

爬取汽车之家新闻 伪造浏览器向某个地址发送Http请求&#xff0c;获取返回的字符串 response requests.get(url 地址)response.contentresponse.encoding apparent_encodingresponse.textbs4&#xff0c;解析HTML格式的字符串 soup BeautifulSoup(<html>...</html…

Mac OS使用技巧之五:Macbook键盘的使用基础技巧

使用过苹果电脑的朋友应该都知道苹果的台式机和笔记本键盘布局有自己独有的风格&#xff0c;Mac里面的键盘细节就值得我们深深推敲。这篇博客将为一些Mac的新手&#xff0c; 详细介绍一下苹果电脑键盘的基础使用技巧&#xff0c;笔者目前的系统是Mac mavericks。Mac OS按键符号…

需求工程week1

这是第一周&#xff0c;我们小组确定了项目工程的主题&#xff0c;对于需求不清楚的地方与甲方进行了沟通。简单制定了下一周的工作计划。 以下是详细说明&#xff1a; &#xff08;1&#xff09;项目背景和范围 ①背景&#xff1a;在急需志愿活动的今天&#xff0c;在部分个人…

3- 快速上手Linux玩转典型应用- Linux准备工作

4- 准备工作 查看ip ifconfig # 查看ip地址 ipaddr # ip vi /etc/sysconfig/network-scripts/ifcfg-xxyum install net-tools最小化安装的server版本没有ifconfig。使用ip addr tab补全键一次补全。两次提示。 使用pageup pagedown键&#xff0c;翻动。 编辑我们的配置文件将o…

Mac OS使用技巧之六:鼠标和触摸板的使用

本篇说一下Macbook里面鼠标和触摸板的使用&#xff0c;如果你的电脑是台式机&#xff0c;那么使用触摸板可能需要你自己配备Magic Trackpad。在我看来&#xff0c;Mac OS的日常使用基本是不需要鼠标的。Mac OS与触摸板的完美契合是windows系统永远无法企及的。但不排除有些情况…

go run 和 go build 和 go install 命令区别

go run&#xff1a; go run 编译并直接运行程序&#xff0c;它会产生一个临时文件&#xff08;但实际不存在&#xff0c;也不会生成 .exe 文件&#xff09;&#xff0c;直接在命令行输出程序执行结果&#xff0c;方便用户调试。 注意点&#xff1a;需要在main包下执行go run &a…

Mac OS使用技巧之七:个性化自己的Mac OS主界面

今天来讲一下个性化自己的主界面。Mac OS的亮点之一就在于它精炼美观的主界面。 Mac OS的界面跟我们熟悉的windows是截然不同的&#xff0c;赋予了桌面新的定义。 能够完美的体现一张牛X的壁纸是有多么的吸引人。&#xff08;图不是我盗的哦&#xff0c;第一张图片加了自己水…

Google的“机器人情结”:两次合计36亿美元的人工智能收购

据Re/code1月27日消息&#xff0c;Google将收购&#xff08;据知情人透露约4亿美元&#xff0c;未经证实&#xff09;一家人工智能公司DeepMind。DeepMind公司位于英国伦敦&#xff0c;由神经系统科学家DemisHassabis、网络语音通讯软件Skype开发者JaanTallin和研究人员ShaneLe…

Mac OS使用技巧之八:Dock栏使用技巧

本篇博客&#xff0c;我们来讲一下Mac OS的标志性的东西————Dock。在我们的第七篇系列博客里面已经提及了神秘强大的Dock栏。这是苹果的一大亮点。Dock中间偏右侧有一条浅浅的分割线。分割线左侧是APP的图标&#xff0c;在运行的下面会有白色光点。分割线右侧是堆栈&#x…

Mac OS使用技巧之九:Mission Control和DIY自己的Dashboard

一、Mission Control使用技巧Mac OS X为我们提供了更加无缝和流畅的多桌面、应用管理和切换&#xff0c;Mission Control。之前的教程里面也提到过。触摸板四指向上平移&#xff08;可以在系统偏好里面设成三指&#xff09;&#xff0c;就可以调出高端大气的Mission Control。包…