上一节配置好了NDK环境,现在主要说说如何在此基础上搭建cocos2dx 3.2.

之所以要写着俩篇博文,主要是因为很多书本包括网上大部分都是cocos2dx 2.x版本的,在环境配置等方面与3.2版本就很大的不同,如果按照2.x版本去配置会出现很多问题和麻烦。cocos2dx 3.2版本的环境配置网上也有一些,不过有些并不是很准确,另外3.2版本本身有一些问题,网上很多并没有提到。这俩篇博文是大量参照网上写到比较全面的博文,并结合自己的环境和问题总结的。

先强调一下,大家一定要先阅读一遍cocos2dx安装目录下的readme!!关于cocos2dx的安装和测试里面其实说的很详细了,这样就可以少走些弯路。

下面开始进入正题。再次强调ndk一定要使用r9d版本!需要准备如下:

1、ant  这个比较简单,官网上下载安装后配置环境变量即可。

2、python 建议使用2.7版本,据说高版本会有问题。

3、cocos2dx 3.2

第一步:

安装ant及python。

ant安装很简单,安装后配置环境变量即可,注意添加的是“ant目录\bin”。python其实也一样,不过python在安装过程中可以注意一下,在其中一个界面最后一个选项就是环境变量,默认是不选的,选择后继续安装就不需要手动去配置了。

第二步:

安装cocos2dx 3.2。

官网上下载好后解压缩,命令行运行其下的setup.py。过程中分别需要配置androidsdk、ndk、ant的目录,其中ant是其根目录下的bin。配置有错误就会提示,需要重新来一遍,不过前面配置成功了就不会再提示配置了。

安装好后打开cmd输入cocos,如果显示帮助信息而非“cocos不是内部命令”这样的,那么就说明安装成功了。

这部分还有一个问题,我发现setup.py安装后会将androidsdk、ndk、ant自己配置到用户环境中,并且在用户环境path中添加了cocos2dx的bin目录。正常来说命令行下输入就可以正常显示,但是我电脑还是无法正常显示,具体原因不明,最后只好手动把cocos2dx的bin目录添加至系统变量的Path中。

第三步:

新建cocos2dx 3.2测试项目。

这部分与2.x版本有一些不同。

运行命令(使用cmd等)  cocos new 项目名 -p 包名 -l 语言(只有cpp,lua,js可选) -d 工程目录

例如:cocos new mygame -p com.your_company.mygame -l cpp -d e:\mygame\     这个命令就是在e:\mygame\创建mygame 项目,项目的包名为com.your_company.mygame

等一会就可以看到生成的工程文件了,在总目录下有proj.android,这个就是android的项目文件(其实这个项目是在cocos2dx安装目录下的\templates\cpp-template-default\下,只是拷贝过去并改了包名项目名等)。另外在总目录下还有俩个目录需要说一下,一个是cocos2d(对应cocos2dx安装目录下的cocos文件夹),其下的\platform\android\java需要以“source”的方式引用到项目中,不过项目本身已经引用了,但是会有个小问题,以后再说;另外一个是Resources,顾名思义里面是项目的资源文件,如果发现项目中缺少资源文件,可以将这个目录下的文件拷贝到项目的assets下。

第四步:

eclipse导入项目。

打开eclipse,在新建项目时选择“File->New->Other->Android/Android Project from Existing Code”,选择上步提到的proj.android将项目导入eclipse。

这时就会出现错误,这是3.2版本本身的一个小问题。

右键->Build Path->Config Build Path,在source下可以看到libcocos2d的路径是错误的,中间多了一个“2d”。这个就是我们上步提到过的,将其改回正确路径问题就会消失。

第五步:

编译运行项目。

第一章提到需要自己配置一个ndk的builder,这样就可以自动进行编译。cocos2dx的这个测试项目并不需要,打开它的builders就会发现里面已经有了一个“cdt builder”。Run As->Android Application,打包之前会自动进行编译,注意看日志实际上是运行了一条“python xxxx/CocoTest/proj.android/build_native.py -b release all ”命令,编译后会在libs下自动创建so文件,然后会自动打包安装。在手机上就可以看到cocos2dx的运行了!

cocos2dx终于成功搭建好了,途中因为网上的各种误导遇到了很多问题,花费了不少时间,所以自己想简单总结一下。其实最主要的文件就是NDK版本问题,ndk的版本一定要是r9d版本!低的版本会不支持c++11,我试过的包括r8、r9及网上别人试过的r9b都不行。另外网上也有人说r10也不行,反正尽量使用r9d版本。否则会出现很多问题,下面要重点说一下因为版本导致出现的一些问题。

1、低版本ndk无法编译。

最开始使用的是低版本,运行之后程序直接崩溃,日志显示java.lang.IllegalArgumentException: Unable to find 
native library: libcocos2dcpp错误。其实就是没有编译,libs下没有产生so文件。

网上有很多人建议手动编译,就是在项目目录下运行build_native.py,其实根本不管用。因为项目运行时会自动编译,根本没必要手动编译。但是手动编译就会看到问题所在,提示Android NDK: Invalid APP_STL value: c++_static,就是ndk版本低的原因。

关于这个其实网上有俩种解决方式,一种就是换成r9d版本的ndk;一种是修改Application.mk,不使用c++_static。个人建议直接换新版本。

2、存在已导入的项目,低版本ndk升级

在ndk r9版本的环境下导入cocos2dx的测试项目无法编译,于是自己下载了r9d版本,替换了之后打开eclipse就报出问题了。

问题是An internal error occurred during: "C/C++ Indexer". java.lang.NullPointerExcption,然后发现elipse该项目下就看不到任何文件。网上一搜竟然没看到有这样的问题。净遇上这种奇葩事,关闭"C/C++ Indexer"也不行,试了好久都解决不了。

后来觉得可能是项目的问题,于是自己新建了一个项目,简单的实现ndk里的hellojni,运行正常!

那一定是cocos2dx的测试项目有问题,本身应该没问题,应该是用低版本的ndk导入并运行过,现在直接换高版本可能导致的。将测试项目删除,重新用cocos命令生成一个,再导入解决引用bug。没有任何问题了,编译运行,一切正常!

就像我多次强调,总之cocos2dx 3.2一定要使用ndk r9d版本!

eclipse开发cocos2dx 3.2环境搭建之二: cocos2dx 3.2安装及测试运行 (An internal error occurred during: “C/C++ Indexe)相关推荐

  1. Linux服务器运行环境搭建(二)——Redis数据库安装

    官网地址:http://redis.io/ 官网下载地址:http://redis.io/download 1. 下载Redis源码(tar.gz),并上传到Linux 2. 解压缩包:tar zxv ...

  2. 使用Eclipse JEE+Mtj+Nokia S60 V3SDK开发J2ME应用的环境搭建

    使用Eclipse JEE+Mtj+Nokia S60 V3SDK开发J2ME应用的环境搭建 2010-04-07 16:53 在Nokia S60 V3下进行J2ME应用程序开发,需要搭建 Noki ...

  3. eclipse中SSH三大框架环境搭建二

    通过上一篇博客我们可以轻松搭建strtus2的环境,接下来由我来继续介绍spring的环境搭建以及spring注入的简单使用 相关链接:eclipse中SSH三大k框架环境搭建<一> ec ...

  4. Python 网站开发(一)环境搭建

    前些天看到小阳买回来的一本 Python 基础教程,于是就产生了使用 Python 来开发一个小博客的想法.这个 Python 网站开发系列文章将不会过多说 Python 基本语法,主要是面向实践的. ...

  5. 安卓开发(一)环境搭建、基本程序与控件

    layout: post title: 安卓开发(一)环境搭建.基本程序与控件 description: 安卓开发(一)环境搭建.基本程序与控件 tag: 安卓 文章目录 Intent:协助应用间的交 ...

  6. 全志A33开发板vstar编译环境搭建

    全志A33开发板vstar编译环境搭建 安装系统 全志提供的vstar的SDK使用内核linux-3.4.39, 在编译过程中,要用到一个文件gen_check_code,位于linux-3.4/ar ...

  7. 保姆级教程:Linux(Ubuntu 18.04)下VSCode配置与嵌入式开发平台X2000_Halley5调试环境搭建

    保姆级教程:Linux(Ubuntu 18.04)下VSCode配置与嵌入式开发平台X2000_Halley5调试环境搭建 写在前面 配置VSCode的编译环境 配置VSCode的gdb调试环境 配置 ...

  8. 全志A33开发板的android环境搭建及编译、打包

    转自:http://blog.csdn.net/jangel_lee/article/details/44306621 A33环境搭建编译手册 说明 目录 Ubuntu安装 4 制作Ubuntu的US ...

  9. vue开发移动端h5环境搭建

    技术选型 公司现在需要开发移动端的h5,使用现在比较流行的vue 2.0开发,使用的脚手架是Vant2,网络访问使用的是axios,路由跳转使用的是vue-router,开发工具是vscode,作为一 ...

最新文章

  1. easyui 去掉按钮 虚线框
  2. HIbernate的检索方式
  3. 【JZOJ4307】喝喝喝
  4. [PAT乙级]1013 数素数
  5. mysql hint use force ignore_MySQL实时在线备份恢复方案
  6. 用python求期望_用Python计算明日方舟2021龙门幸运墙期望
  7. solrcloud 7.5在k8s上的部署安装和使用教程
  8. 使用wsimport构建WebService客户端
  9. 计算机网络实验报告实验台,计算机控制实验台
  10. uk码对照表_36码(uk码和中国码对照表)
  11. 每一个小孩都是种子,请允许Ta在成长的路上跌跌撞撞。耐心的等待,种子一定能长成参天大树!
  12. python为啥爬取数据会有重复_使用python爬取B站千万级数据
  13. macos 升级到 Big Sur 虚拟机的鼠标能动但不能点击
  14. 爪哇国新游记之十一----用异常控制流程
  15. 音频可视化图形引擎—Specinker
  16. 图像处理——如何处理不同格式和深度的图像确保清晰度满足要求
  17. js之鼠标的拖曳效果
  18. GPU0和GPU1的区别
  19. AI智能分析在智慧电厂的典型应用
  20. 计算机f g 盘找不到了,电脑E/F盘符突然不见了怎么办

热门文章

  1. 推荐六款帮助你实现惊艳视差滚动效果的 jQuery 插件
  2. Windows Phone StackPanel 布局示例
  3. 搜索引擎优化不是网页标签优化
  4. Vue-admin工作整理(四):路由组件传参
  5. 六、springcloud之配置中心Config
  6. 6.24AppCan移动开发者大会价值30万的展示机会归了谁?
  7. [Android]使用platform密钥来给apk文件签名的命令
  8. c# 扩展方法奇思妙用基础篇八:Distinct 扩展(转载)
  9. UNIX系统编程(一)
  10. [转] 初识Firebug(HTML查看和编辑、Javascript控制台、网络状况监视器)