琢磨着弄弄Cocos2d-x,配置下Cocos2d-x + Android + Eclipse + Windows 8的开发环境,过程比较心酸曲折,做个记录以备后用

我的基础环境

不做详述,不清楚查阅[Android开发环境搭建]的文档即可

- Windows8

- Eclipse Helios 3.6.2

- JDK1.6

- Android SDK/ADT

安装 Cocos2d-x

-cocos2d-2.1rc0-x-2.1.2.zip

- 这里下载更新的版本

- 下载完成后,解压缩



安装 CDT

- Eclipse的C/C++插件,如不需要在Eclipse中编写C/C++代码可先不用安装

- CDT-7.0.2 for Helios

- 其他版本

- 这里需要注意的是,不同版本的Eclipse要安装不同版本的CDT插件;

我的Eclipse版本是Helios,则对应cdt-master-7.0.2.zip。

- 下载完成后解压缩;本地插件安装方法,在Eclipse根目录下新建links文件夹,

在links文件夹里新建cdt.link,里面的内容填写为:path= 你的CDT目录,例如:

path=F:\\eclipse-plugins\\cdt-master-7.0.2

再打开Eclipse,插件就已经装好了.

安装 NDK

-android-ndk-r8e-windows-x86.zip

- 其他版本

- 下载完成后,解压缩

-配置NDK_ROOT环境变量(直接配置在WINDOWS环境变量中即可)

右键计算机->属性->高级系统设置->高级->环境变量->在系统变量中新建

变量名:NDK_ROOT

变量值:你的NDK目录(例如F:\android\android-ndk-r8e)

然后找到名为Path的系统变量,在句首添加%NDK_ROOT%;别忘记分号

安装 Cgywin

- 由于NDK开发大都涉及到C/C++在GCC环境下编译、运行,所以在Windows环境下,需要模拟Linux模拟编译环境

- 下载setup.exe

- 运行setup程序,直接点击Next进入下一步。

- 选择安装方式,第一次可以采用Direct Connection在线下载安装,如有现成的离线包,可以选择离线安装(Install from Local Directory)。

- 选择安装目录

- 选择本地包存储目录(第三部所说,下次即可直接使用该本地包进行离线安装Cygwin)

- 设置网络连接方式以及选择镜像站点地址

- 选择安装项,在这里我们只选择当前需要的,点击列表中Devel,将后面的Default改为Install,下载

- 下载完成后会自动安装到上文设置的安装目录。运行cygwin,在弹出的命令行窗口输入:cygcheck -c cygwin命令,会打印出当前cygwin的版本和运行状态,如果status是ok的话,则cygwin运行正常




- 配置文件权限管理

Cygwin一样模拟了Linux的权限管理体系,这也没有什么不好的,但是跟Microsoft Windows的默认权限管理却有些不对付。常会出现权限问题,一个文件可以手动改,但如果是多个文件就比较麻烦了,我这里采用彻底的解决方法是,在安装好Cygwin以后,禁止Cygwin采用POSIX体系的权限管理。使用文本编辑器打开 Cygwin目录\etc\fstab,末尾添加如下行:

none / cygdrive binary,user,noacl,posix=0 0 0

创建 Android 项目

- 进入cocos2d-x目录,右键点击create-android-project.bat,编辑,更改批处理里的参数;

- 将_CYGBIN设置为cycgwin\bin安装的的绝对路径(例:F:\Cygwin\bin)

- 将_ANDROIDTOOLS设置为android sdk/tools绝对路径(例:F:\android\android-sdk-windows\tools)

- 将_NDKROOT设置为android ndk的绝对路径(例:F:\android\android-ndk-r8e)

- 修改完毕,保存后,双击create-android-project.bat开始工程创建向导

- 首先是输入包名(建议按照android的命名规则),如org.yourname.test

- 然后输入工程名称(注意不要输入已有的文件夹的名字,如果同名,会被覆盖掉的)如TestCocos2dx

- 选择target id,他会列出不同API方案用ID来标识,根据你的需要选择

- 创建完成(如果创建过程中遇到权限错误,请确认上述Cygwin文件权限管理是否配置过了)

- 查看cocos2d-x的目录下,则多了一个文件夹,文件夹名则为你刚刚输入的工程名称TestCocos2dx

进去看到三个文件夹:

Classes 存放默认工程的C++文件

proj.androidandroid的eclipse工程项目

Resources资源文件

- 编译刚创建的TestCocos2dx项目

打开cygwin,进入到TestCocos2dx/proj.android下,输入 ./build_native.sh 开始编译,如下图



关于build_native.sh,进去查看即可知道,这是一个检查NDK_ROOT变量,拷贝资源文件,然后编译的一个脚本。

将项目导入Eclipse;File->Import->Android->Existing Android Code Into Workspace

Root Directory 选择刚刚创建的TestCocos2dx项目下的proj.android,如下图



导入后,出现一个错误:The import org.cocos2dx.lib cannot be resolved

那我们将设置一下cocos2d-x的引用即可

右键项目->build path->link source->Browse->选择地址

F:\android\cocos2d\cocos2d-2.1rc0-x-2.1.2\cocos2dx\platform\android\java\src

Folder name 填写为一个不与src冲突的名称,如cocos2dx-src 即可,然后finish

现在项目就可以正常跑起来了,连上真机,Run as Android Application

需要注意的是模拟器不支持opengl es2.0,所以用模拟器跑是有问题的。

运行结果如下图:



关于脱离Cygwin,配置Eclipse自动编译的补充

还是以上述项目来说;

在Eclipse里,右键项目->properties->builders->new->program->ok



main面板下->location->browse file system->选择你的NDK目录下的ndk-build.cmd

main面板下->working directory->browse workspace..->选择当前项目



refresh面板下的specific resource选择为当前目录下的jni文件夹,如下图



environment面板下->new...->如下所示

value处填写

cocos2d-x的根目录+分号+cocos2d-x的根目录/cocos2dx/platform/third_party/android/prebuilt



或者

在当前项目的jni文件夹下,编辑Application.mk 末行添加(更改为你自己的路径)

NDK_MODULE_PATH:=f:/android/cocos2d/cocos2d-2.1rc0-x-2.1.2;f:/android/cocos2d/cocos2d-2.1rc0-x-2.1.2/cocos2dx/platform/third_party/android/prebuilt

以上两种方法任选其一;

需要注意的是:路径里不能含空格符,这里windows是以分号做分隔符,linux是以冒号做分隔符

Build Options面板下,Specify Resouces..选择当前项目的jni文件夹,其他配置如下图:



最后,OK,配置好后,Project->Clean,则会开始自动编译,控制台显示信息如下:



如果遇到AssetManager.a的错误,清空obj文件夹里的内容即可。

更多相关文章

  1. Android(安卓)requires compiler compliance level 5.0 or 6.0.
  2. Android(安卓)Studio创建项目Error:Server returned HTTP respon
  3. Android中JNI程序的编写(zhuan)
  4. Android(安卓)studio升级后ndk项目编译打包问题
  5. android 混淆后的代码还原
  6. Ubuntu 17.10 Android(安卓)studio 3.1 下的AVD配置
  7. 【android】Android(安卓)7.0适配步骤
  8. Android之CSDN 牛人博客索引
  9. Android(安卓)Studio当中配置Open CV

随机推荐

  1. SQL Function 自定义函数详解
  2. 数据库 关键字一览表
  3. sql server 自定义分割月功能详解及实现
  4. SQL Server 实现数字辅助表实例代码
  5. Python版Mssql爆破小脚本
  6. SQL分页查询方式汇总
  7. SqlServer中如何解决session阻塞问题
  8. MySQL 5.7 create VIEW or FUNCTION or P
  9. 利用SQL Server数据库邮件服务实现监控和
  10. SQL Server 2012安装后服务器名称找不到