安卓环境搭建
【一 写在前面】
环境搭建的顺序是这样
1.JDK&JRE 安装JDK会顺带安装JRE的,这一步是为了可以编写和允许普通的JAVA程序
2.Eclipse JAVA 的 IDE,这一步是为了方便地开发JAVA程序
3.CDT 是Eclipse的一个插件,这一步是为了可以引入C++
4.ADT 是Eclipse的一个插件,这一步是为了管理安卓开发库
5.ADK 上一步是工具,这一步就是开发库了,到了这一步你可以编写普通的安卓程序
6.NDK 单有CDT还不行,它只能编辑,不能编译,这一步是为了可以编译C++程序,然后在安卓中使用
这里不需要使用cygwin这个麻烦的东西,我们使用新版本的ndk来编译C++
【二 JDK的安装】
JDK的最新版本是1.7,【重要】这里需要下载使用 1.6的JDK,JDK自动包含JRE,使用1.7的JDKcocos的代码会有"暂时性编译错误"问题
下载安装都是一路Next,下面的内容是安装1.7之后降1.6的方法,直接安装1.6的可以飘过
下载地址:http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-javase6-419409.html
根据自己的操作系统选择,这里我用的是 Java SE Development Kit 6u30

如果你像我一样不幸,装上了1.7,可以用下面的方法来恢复降到1.6
1.打开windows的Preferences,把Compiler compliance level 设置到1.6

然后会显示让你配置JRE

在配置jre中添加jre的目录,然后选定
这里,我们在Eclipse里面设置好了JRE6,以及编译使用的JDK,但还不可以
接下来要设置一下你的项目,打开Project Properties,Add Library 然后Next,接下来会要你选择JRE的路径
这里我们直接选择刚刚在windowsPreferences设置好的JRE6,然后Finish即可
此时你会发现更多的红叉叉,所有文件都出现红叉叉了,让我们把他们消除掉,这次很简单,刚刚重置JRE的时候,吧安卓也重置掉了
把安卓ADK勾上就可以了
【三 安装Eclipse和CDT】
这里我直接用这一个,带CDT插件,已经有Eclipse的同学可以去下载一个CDT
Eclipse解压就可以直接使用了,这里不墨迹
Eclipse C++版本下载地址 http://www.eclipse.org/downloads/packages/eclipse-ide-cc-developers-includes-incubating-components/indigosr2
【四 安装ADT】
两种安装方法,一种在线安装,一种下载安装,网速问题,我倾向于下载安装。
注意,请下载1.7及以上版本的ADT,这里使用1.8的版本
在Help里面,选择Install New Software...
然后选择Add,如果是在线安装,在Location里面填 https : //dl-ssl.google.com/android/eclipse/
(不行的话,把https改为http试试)
如果是下载安装,先把ADT下载到本地,然后按Archive选择ADT的路径,点 ok,勾上Developer Tools开始安装
ADT 1.8的地址:http://dl.google.com/android/ADT-18.0.0.zip
PS。这个安装需要一段时间.....不要以为它死机了,挂了,如果你的机器或者网络不给力,让你感觉到不耐烦
请不要强制关闭它....否则,你可能要看接下来的错误排除
安装完毕之后重启Eclipse,然后会提示你安装ADK
如果你非常不幸安装了1.6以及以前版本的ADT,或者强制中断了它的安装....那么你需要把它卸掉
它将无法创建安卓项目...,而卸载,也是一个麻烦的事情
首先,需要把这个插件删除,在Help的About找到对应的ADT,然后删除
接下来从软件更新列表中,删除我们的ADT
【五 安装ADK】
安装完ADT之后,重启Eclipse会提示你安装ADK,你可以指定路径,或者下载安装
可以在这个地址下载ADK http://developer.android.com/sdk/index.html
如果是下载的话,建议下载2.1,他的兼容性比较好,本地的话,指定ADK解压后的路径即可
【六 安装NDK】
到这里为止,我们已经可以使用Eclipse来编写安卓程序了,但我们的目的是用C++编写cocos,要达到这个目的,还需要最后一步——NDK
使用NDK有两个目的,第一个是将我们的C++代码编译成链接库,这里的链接库是Linux下的so或者a文件,不同于windows的dll
第二个目的是Jni,Java需要通过Jni来调用我们的C++代码
下载地址为:http://dl.google.com/android/ndk/android-ndk-r7-windows.zip
下载完毕之后解压,这里给出最简单的步骤,在编译的过程中会碰到各种问题,这里也将一一解答
首先我们要创建一个Android项目
使用最新版本的Cocos2d-x,我们用他的HelloWorld来做试验
项目打开之后,这里发现一个错误,没有setEGLContextClientVersion这个方法,这里,暂时把它注释掉吧
看意思应该是设置OpenGL ES的版本....反正默认的应该可以
然后看到控制台输出一句话
这里在Application.mk加上APP_PLATFORM :=android-4就可以了
接下来我们要把NDK加进来,让NDK来编译我们的C++
指定ndk-build.cmd来编译我们的项目,下面的工作路径将作为参数传入给ndk-build.cmd,
我们选择项目的路径,它会自动编译jni子目录下的Android.mk
这时候如果是cocos2d-1.0.1-x-0.13.0-beta以及之前的版本,是可以进行编译的,但如果是之后的版本,有可能出现如下错误
Android.mk引用了一个模块,cocos2dx模块,而NDK没有找到它,所以报了这个错,
之前的版本是直接包含cocos2dx模块的Android.mk的,所以不会报错
而这里使用了import,我们也可以使用之前版本的方法来包含它,但貌似import比之前的方法要更好一些
错误信息提示我们,可以通过设置NDK_MODULE_PATH环境变量, 这里很有可能设置错误
一般,一个Android.mk包含一个或多个模块,当你要import cocos2dx模块时,
他会在这个路径下%NDK_MODULE_PATH\cocos2dx寻找Android.mk文件
所以我们编辑我们的Builder
添加NDK_MODULE_PATH变量,注意要写两个路径,用分号分开
D:\SDK\cocos2d-2.0-rc0a-x-2.0;D:\SDK\cocos2d-2.0-rc0a-x-2.0\cocos2dx\platform\third_party\android\prebuilt
因为cocos2dx还import了其他几个module,第二个路径制定了第三方的module,设置完就可以进行编译了
我用的是最新的2.0,有些头文件没找到,一些类型也有问题....密密麻麻地近百个错误。。。
我们试着用低一点的版本吧
接下来又出现了一个找不到静态库的问题
把<NDK>/sources/cxx-stl/gnu-libstdc++/libs/armeabi/目录下的libgnustl_static.a
拷贝到obj/local/armeabi/libgnustl_static.a目录下,解决
最后生成的apk放在bin目录下
PS.资源文件需要放在assets下,ADT会将它打包到apk

让人死去活来的cocos2d-x安卓开发环境搭建(windows+eclipse+ndk)的更多相关文章

  1. html5 canvas合成海报所遇问题及解决方案总结

    这篇文章主要介绍了html5 canvas合成海报所遇问题及解决方案总结,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  2. Html5 video标签视频的最佳实践

    这篇文章主要介绍了Html5 video标签视频的最佳实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

  3. HTML5在微信内置浏览器下右上角菜单的调整字体导致页面显示错乱的问题

    HTML5在微信内置浏览器下,在右上角菜单的调整字体导致页面显示错乱的问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧

  4. ios – containerURLForSecurityApplicationGroupIdentifier:在iPhone和Watch模拟器上给出不同的结果

    我使用默认的XCode模板创建了一个WatchKit应用程序.我向iOSTarget,WatchkitAppTarget和WatchkitAppExtensionTarget添加了应用程序组权利.(这是应用程序组名称:group.com.lombax.fiveminutes)然后,我尝试使用iOSApp和WatchKitExtension访问共享文件夹URL:延期:iOS应用:但是,测试NSURL

  5. Ionic – Splash Screen适用于iOS,但不适用于Android

    我有一个离子应用程序,其中使用CLI命令离子资源生成的启动画面和图标iOS版本与正在渲染的启动画面完美配合,但在Android版本中,只有在加载应用程序时才会显示白屏.我检查了config.xml文件,所有路径看起来都是正确的,生成的图像出现在相应的文件夹中.(我使用了splash.psd模板来生成它们.我错过了什么?这是config.xml文件供参考,我觉得我在这里做错了–解决方法在config.xml中添加以下键:它对我有用!

  6. ios – 无法启动iPhone模拟器

    /Library/Developer/CoreSimulator/Devices/530A44CB-5978-4926-9E91-E9DBD5BFB105/data/Containers/Bundle/Application/07612A5C-659D-4C04-ACD3-D211D2830E17/ProductName.app/ProductName然后,如果您在Xcode构建设置中选择标准体系结构并再次构建和运行,则会产生以下结果:dyld:lazysymbolbindingFailed:Symbol

  7. Xamarin iOS图像在Grid内部重叠

    heyo,所以在Xamarin我有一个使用并在其中包含一对,所有这些都包含在内.这在Xamarin.Android中看起来完全没问题,但是在Xamarin.iOS中,图像与标签重叠.我不确定它的区别是什么–为什么它在Xamarin.Android中看起来不错但在iOS中它的全部都不稳定?

  8. .dylib在Debug中链接,在XCode中找不到适用于iPhone的版本

    所以我已经将libxml2.2.dylib库包含在我的iPhoneXCode项目中,以创建一些Xml和XPath解析实用程序.当我编译并运行在模拟器和设备的调试模式时,我没有问题,但是,当我切换到发布模式我得到…

  9. 在iOS上向后播放HTML5视频

    我试图在iPad上反向播放HTML5视频.HTML5元素包括一个名为playbackRate的属性,它允许以更快或更慢的速率或相反的方式播放视频.根据Apple’sdocumentation,iOS不支持此属性.通过每秒多次设置currentTime属性,可以反复播放,而无需使用playbackRate.这种方法适用于桌面Safari,但似乎在iOS设备上的搜索限制为每秒1次更新–在我的情况下太慢了.有没有办法在iOS设备上向后播放HTML5视频?解决方法iOS6Safari现在支持playbackRat

  10. 在编译的iOS应用程序(IPA)中加密内容

    由于IPA结构只是一个压缩文件,包含编译代码媒体内容,如图像&音频,我如何保护内容免受别人的窃取?是否有加密可以添加到IPA?

随机推荐

  1. 【cocos2d-x 3.x 学习笔记】对象内存管理

    Cocos2d-x的内存管理cocos2d-x中使用的是上面的引用计数来管理内存,但是又增加了一些自己的特色。cocos2d-x中通过Ref类来实现引用计数,所有需要实现内存自动回收的类都应该继承自Ref类。下面是Ref类的定义:在cocos2d-x中创建对象通常有两种方式:这两中方式的差异可以参见我另一篇博文“对象创建方式讨论”。在cocos2d-x中提倡使用第二种方式,为了避免误用第一种方式,一般将构造函数设为protected或private。参考资料:[1]cocos2d-x高级开发教程2.3节[

  2. 利用cocos2dx 3.2开发消灭星星六如何在cocos2dx中显示中文

    由于编码的不同,在cocos2dx中的Label控件中如果放入中文字,往往会出现乱码。为了方便使用,我把这个从文档中获取中文字的方法放在一个头文件里面Chinese.h这里的tex_vec是cocos2dx提供的一个保存文档内容的一个容器。这里给出ChineseWords,xml的格式再看看ChineseWord的实现Chinese.cpp就这样,以后在需要用到中文字的地方,就先include这个头文件然后调用ChineseWord函数,获取一串中文字符串。

  3. 利用cocos2dx 3.2开发消灭星星七关于星星的算法

    在前面,我们已经在GameLayer中利用随机数初始化了一个StarMatrix,如果还不知道怎么创建星星矩阵请回去看看而且我们也讲了整个游戏的触摸事件的派发了。

  4. cocos2dx3.x 新手打包APK注意事项!

    这个在编译的时候就可以发现了比较好弄这只是我遇到的,其他的以后遇到再补充吧。。。以前被这两个问题坑了好久

  5. 利用cocos2dx 3.2开发消灭星星八游戏的结束判断与数据控制

    如果你看完之前的,那么你基本已经拥有一个消灭星星游戏的雏形。开始把剩下的两两互不相连的星星消去。那么如何判断是GameOver还是进入下一关呢。。其实游戏数据贯穿整个游戏,包括星星消除的时候要加到获得分数上,消去剩下两两不相连的星星的时候的加分政策等,因此如果前面没有做这一块的,最好回去搞一搞。

  6. 利用cocos2dx 3.2开发消灭星星九为游戏添加一些特效

    needClear是一个flag,当游戏判断不能再继续后,这个flag变为true,开始消除剩下的星星clearSumTime是一个累加器ONE_CLEAR_TIME就是每颗星星消除的时间2.连击加分信息一般消除一次星星都会有连击信息和加多少分的信息。其实这些combo标签就是一张图片,也是通过控制其属性或者runAction来实现。源码ComboEffect.hComboEffect.cpp4.消除星星粒子效果消除星星时,为了实现星星爆裂散落的效果,使用了cocos2d提供的粒子特效引擎对于粒子特效不了

  7. 02 Cocos2D-x引擎win7环境搭建及创建项目

    官网有搭建的文章,直接转载记录。环境搭建:本文介绍如何搭建Cocos2d-x3.2版本的开发环境。项目创建:一、通过命令创建项目前面搭建好环境后,怎样创建自己的Cocos2d-x项目呢?先来看看Cocos2d-x3.2的目录吧这就是Cocos2d-x3.2的目录。输入cocosnew项目名–p包名–lcpp–d路径回车就创建成功了例如:成功后,找到这个项目打开proj.win32目录下的Hello.slnF5成功了。

  8. 利用cocos2dx 3.2开发消灭星星十为游戏添加音效项目源码分享

    一个游戏,声音也是非常的重要,其实cocos2dx里面的简单音效引擎的使用是非常简单的。我这里只不过是用一个类对所有的音效进行管理罢了。Audio.hAudio.cpp好了,本系列教程到此结束,第一次写教程如有不对请见谅或指教,谢谢大家。最后附上整个项目的源代码点击打开链接

  9. 03 Helloworld

    程序都有一个入口点,在C++就是main函数了,打开main.cpp,代码如下:123456789101112131415161718#include"main.h"#include"AppDelegate.h"#include"cocos2d.h"USING_NS_CC;intAPIENTRY_tWinMain{UNREFERENCED_ParaMETER;UNREFERENCED_ParaMETER;//createtheapplicationinstanceAppDelegateapp;return

  10. MenuItemImage*图标菜单创建注意事项

    学习cocos2dx,看的是cocos2d-x3.x手游开发实例详解,这本书错误一大把,本着探索求知勇于发现错误改正错误的精神,我跟着书上的例子一起调试,当学习到场景切换这个小节的时候,出了个错误,卡了我好几个小时。

返回
顶部