1.windows7
工具:
ADT、JDK、NDK、cocos2d-x、cygwin
cygwin 的安装我自己也没搞太懂,给位只可以去google了 ,这个一定要装, NDK编译的时候要用到这个东西。
先在window下配置android开发环境直接下google提供的ADT集成编译环境,配置JDK,下载DNK R9
在eclipse下配置NDK路径:
在 Eclipse 中,打开“window”->“preferences”出现如下对话框。
如下所示输入 NDK 安装路径(在此我们假定您已将 NDK 下载至了 Windows* 上的 d:\android-ndk-r8b),单击“应用”,然后单击“确定”。
我们现在已准备好向 Eclipse 中的该项目添加 NDK build 支持。 在 Eclipse 中,右键单击 hello-jni 项目 (com.example.hellojni.HelloJni) -> Android 工具 -> Add Native 支持 -> 完成。
目前就可以导入NDK中的例子程序编译了。run as android application......
但是我在windows下发现编译兼容X86的so文件时会出现找不到头文件的情况.
还有在jni中要编译的源码中添加了stdlib.h头文件后会发现找不到memory.h的头文件。
coocs2d-x 0n windows
cocos2d-x 下载解压。windows下编译可以安装vs其他的没有试过。我安装的vs2010 。
再下一步是直接运行目录下面的build-win32.bat 执行完之后会在Debug.win32文件夹下面生存我们开发需要的库。(网上抄的实际作用还没弄懂,不过有几个可以再win下运行的exe文件时确实存在的)
我下了几个版本实验,有的版本直接执行会编译失败,不过没关系。可以找到cocos2d-win32.vc2010.sln 这个文件直接导入到vs解决方案里面去生成解决方案。
基本可以认为cocos2d 在window开发配置,可以开发在windows上东西了,cocos2d-x的用处当然不是为了搞这货,还要想办法和上面的android开发环境结合,搞好移植。
cocos2d-x移植到android
接下来就是 给eclipse下导入一个cocos2d-x下的例子程序,路径cocos2d-x 主目录下samples\Cpp\HelloCpp\proj.android 就是一个android工程,File->new->project出现对话框,
创建samples\Cpp\HelloCpp\proj.android 工程就可以了.run 发现各种头文件找不到...伤心了 换个ubuntu系统重新开始配。
2.ubuntu10.04
这会跑在虚拟机上,ADT、JDK、NDK、cocos2d-x。
ADT和NDK配置和window是基本一样,JDk配置可以百度,本来想给个链接的发现找不到了,不过我保存文本了,下次发表个文章。
环境安装好后,跑一个helloJNI . 尝试在JNI目录下的源文件中添加stdlib.h,没有出现头文件找不到的情况。
NDK设置环境变量 添加 expert NDK_ROOT = [NDK 绝对路径]在 ~/.bashrc最后一行.
如果是10.04想要链接adb还需要配置USB.
----> lsusb命令查看手机连接信息
Bus 002 Device 005: ID 0e0f:0008 VMware, Inc.
Bus 002 Device 003: ID 0e0f:0002 VMware, Inc. Virtual USB Hub
Bus 002 Device 002: ID 0e0f:0003 VMware, Inc. Virtual Mouse
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 005: ID 17ef:75b5 Lenovo
Bus 001 Device 002: ID 0bda:0129 Realtek Semiconductor Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
我的是虚拟机,信息有点多。不够我连接的手机是LENOVO的很明显就是
Bus 001 Device 005: ID 17ef:75b5 Lenovo
在android的官网上source.android.com找到环境配置的页面
SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", ATTR{idProduct}=="0fff", MODE="0600", OWNER="<username>"
新建文件/etc/udev/rules.d/51-android.rules 文件在里面添加
SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", ATTR{idProduct}=="0fff", MODE="0600", OWNER="<username>"
设置如下2项位对应 的值
ATTR{idVendor}=="0bb4", ATTR{idProduct}=="0fff",
make-all-linux-project.sh执行这个玩意,说是用途和build-win32.bat 一样的。但是悲剧的发现在ubuntu12.04上运行很好可以编译通过。不过运行一个生成的可执行例子程序会有一一些异常退出。在ubuntu10.04上编译出错,找不到有一些常量应该是少了什么库文件,这个正在研究。不过在ubuntu10.04上讲cocos2d-x的例子代码导入到eclipse,移植到android的时候特别顺利; 在ubuntu12.04上编译android apk则运行时强制退出。
creat_android_project用来创建android项目的,不过需要将里面的DNK_ROOT_LOCAL和SDK路径设置正确。