cocos2d-x学习之旅(五):1.5 使用eclipse编译cocos2d-x示例项目,创建cocos2d-x android项目并部署到真机
今天将cocos2d-x的示例项目tests编译到android真机运行,以及如何创建cocos2d-x的android项目。
打开cocos2d-x的tests项目,路径为:D:\cocos2d-x-2.0.1\tests
下载:PdaNet:http://xiazai.zol.com.cn/detail/36/350633.shtml
如果你的手机或者平板无法连上电脑,可以下载这个软件。
第一步:编译cocos2d-x的示例项目
首先用visual studio 打开 tests项目,看看项目结构

classes下的tests文件夹就是官方的示例代码,里面包含很全的,可是学习的好途径。

现在使用cygwin编译项目,使用管理员权限打开cmd->cygwin
输入 cd /cygdrive/d/cocos2d-x-2.0.1/tests/proj.android 出现以下界面,然后使用ls列表文件目录

使用文本编辑器打开build_native.sh,将NDK_ROOT_LOCAL变量和COCOS2DX_ROOT_LOCAL变量修改为当前
NDK的根目录路径和cocos2d-x的根目录路径

现在执行 ./build_native.sh 来编译项目,出现Permission denied ,这是由于win7系统下打开了UGA
没有权限访问目录造成的

现在我们给tests文件夹加载读写的权限,不过文件有点多,可以使用导入注册表来做个小工具,批量给文件夹
赋予读取权限。
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\*\shell\runas]
@="管理员取得所有权"
"NoWorkingDirectory"=""
[HKEY_CLASSES_ROOT\*\shell\runas\command]
@="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant administrators:F"
"IsolatedCommand"="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant administrators:F"
[HKEY_CLASSES_ROOT\exefile\shell\runas2]
@="管理员取得所有权"
"NoWorkingDirectory"=""
[HKEY_CLASSES_ROOT\exefile\shell\runas2\command]
@="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant administrators:F"
"IsolatedCommand"="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant administrators:F"
[HKEY_CLASSES_ROOT\Directory\shell\runas]
@="管理员取得所有权"
"NoWorkingDirectory"=""
[HKEY_CLASSES_ROOT\Directory\shell\runas\command]
@="cmd.exe /c takeown /f \"%1\" /r /d y && icacls \"%1\" /grant administrators:F /t"
"IsolatedCommand"="cmd.exe /c takeown /f \"%1\" /r /d y && icacls \"%1\" /grant administrators:F /t"
将上面的代码保存为reg文件,并点击导入到注册表

现在使用这个小工具批量给tests文件夹赋予读写权限,在tests文件夹上面点击右键,选中 "管理员取得所有权" 执行批处理.
再次执行编译项目,如果看到这样的界面说明编译成功了.

导入tests项目,前面一章已经做过如何导入android项目,现在我们直接导入。

android手机或者平板电脑,用usb连上电脑,记得在android系统里面打开开发调试选项和保持唤醒,

现在使用eclipse将tests项目部署到真机,成功了.

第二步:创建cocos2d-x的android项目
打开cocos2d-x目录下的create-android-project.bat文件
修改以下变量路径
_CYGBIN 路径为 d:\cygwin\bin
_ANDROIDTOOLS 为 d:\android-sdk-windows\tools
_NDKROOT 为 d:\android-ndk-r8

以管理员身份运行cmd,进入到cocos2d-x的目录,执行create-android-project.bat

输入项目路径包名dekins.firstdemo

输入项目名称 dekinsdemo

输入android版本:10(对应android版本2.3.3)

成功后会在cocos2d-x的项目下创建dekinsdemo目录

看下生成的项目结构:
Classes为项目的类代码
proj.android为eclipse的项目文件
Resources为项目的资源文件

注意如果项目包名和项目名称一样的话会出proj.android项目没有jni目录,解决办法:
在proj.android目录手动建一个jni目录,并把helloworld文件夹
Android.mk,Application.mk,list.sh移动到jni目录下。

现在使用cygwin编译这个项目,别忘了右键点击dekinsdemo选择"管理员取得所有权"
使用cygwin执行build_native.sh命令
出现成功界面

现在把刚建好的android项目导入到eclipse中,并部署到真机,成功了.

cocos2d-x学习之旅(五):1.5 使用eclipse编译cocos2d-x示例项目,创建cocos2d-x android项目并部署到真机的更多相关文章
- [原创] zabbix学习之旅五:如何快速搭建一个报警系统
通过之前的文章,我们已搭建好zabbix server.agent和mail客户端,现在万事俱备,只差在server的界面中进行相应配置,即可快速搭建一个报警系统.总的来说,快速搭建一个报警系统的顺序 ...
- Spring学习之旅(五)--AOP
什么是 AOP AOP(Aspect-OrientedProgramming,面向方面编程),可以说是 OOP(Object-Oriented Programing,面向对象编程)的补充和完善. OO ...
- Salesforce LWC学习(三十五) 使用 REST API实现不写Apex的批量创建/更新数据
本篇参考: https://developer.salesforce.com/docs/atlas.en-us.224.0.api_rest.meta/api_rest/resources_compo ...
- 我的Java开发学习之旅------>使用Working Setst将Eclipse中的项目分类使项目一目了然
今天发现Eclipse中若有太多的项目,杂七杂八的,看起来会非常的痛苦.今天请教公司的前辈学会了一个方法,在Eclipse中,当项目比较多的时候,我们可以用WorkingSet将这些项目分类,把相关连 ...
- 【WPF学习】第五十七章 使用代码创建故事板
在“[WPF学习]第五十章 故事板”中讨论了如何使用代码创建简单动画,以及如何使用XAML标记构建更复杂的故事板——具有多个动画以及播放控制功能.但有时采用更复杂的故事板例程,并在代码中实现全部复杂功 ...
- WCF学习之旅—TcpTrace工具(二十五)
前面的几篇文章,我们学习了怎么开发WCF应用程序与服务,也学习了如何进行WCF的配置.对于Web Service与WCF服务应用,服务端与客户端的通信是通过收发SOAP Message进行,我们如何有 ...
- WCF学习之旅—WCF第二个示例(五)
二.WCF服务端应用程序 第一步,创建WCF服务应用程序项目 打开Visual Studio 2015,在菜单上点击文件—>新建—>项目—>WCF服务应用程序.在弹出界面的“名称”对 ...
- AngularJS学习之旅—AngularJS 模块(十五)
一.AngularJS 模块 模块定义了一个应用程序. 模块是应用程序中不同部分的容器. 模块是应用控制器的容器. 控制器通常属于一个模块. 1.创建模块 通过 AngularJS 的 angular ...
- WCF学习之旅—第三个示例之二(二十八)
上接WCF学习之旅—第三个示例之一(二十七) 五.在项目BookMgr.Model创建实体类数据 第一步,安装Entity Framework 1) 使用NuGet下载最新版的Entity Fram ...
随机推荐
- “A configuration with this name already exists” error in eclipse run configurations
“A configuration with this name already exists” error in eclipse run configurations Is there a way t ...
- MySql数据库恢复(*frm)文件
mysql数据库恢复(*frm)文件 WorkBench 在使用虚拟服务器时,服务器提供商一般不会像我们使用本地数据库一样:使用导入导出(这样的文件后缀是*.sql).大部分时候提供的是一个文件夹,里 ...
- ClientScript.GetCallbackEventReference实现局部刷新
使用ClientScript.GetCallbackEventReference实现局部刷新是.NET支持的一种前后台代码调用的方式:其实实现局部刷新这样方式有很多种,最经典也常用的莫过于jQuery ...
- git push 不再需要重复输入账户密码的技巧
添加用户环境变量 计算机—属性—高级系统设置—环境变量 变量名 HOME 变量值%USERPROFILE% 在用户文件夹C:\Users\YourName下新建一个名为_netrc的文件 machin ...
- BarTender条码检验位类型知识讲解
检验位类型指定BarTender使用哪一种算法来计算符号的附加检验位.使用“BarTender检验位类型”选项可以从您的符号所支持的检验位类型中选择一种检验位类型.下面,小编就给大家分享设置检验位类型 ...
- qt creator如何实现转到槽功能
ui_mainwindow.h .
- php扩展yaf 按照配置
Yaf,全称 Yet Another Framework,是一个C语言编写的PHP框架,是一个用PHP扩展形式提供的PHP开发框架, 相比于一般的PHP框架, 它更快. 它提供了Bootstrap, ...
- zabbix服务端安装指南及常见问题解决
1. 首先要准备LNMP环境 2. 在mysql中创建zabbix所需要的库和用户 mysql -uroot -pmysql> CREATE DATABASE zabbix CHARACTER ...
- linux环境中如何删除文件的前n行?
需求描述: 今天看了一个系统的临时文件,有5.6G的大小,这个文件也没有用了,想要将大部分的文件都删除掉. 在此记录下删除的过程.删除前n行的记录. 操作过程: 对于数据量比较大的情况(本例5800万 ...
- ios开发之--时间格式化
字符串转时间 iOS 中 NSDate 是时间管理类,这里获取到的时间是 UTC 时间,可以根据需要转换成任意地区的时间. NSFormatter 类是时间格式化类,可以根据指定的格式.地区将指定的时 ...