前两篇介绍了cocos2d-x 下linux开发环境配置和android 环境配置问题。在这其中遇到很多问题,所以最后一篇分享一下在处理这些问题时,我是如何解决的,是怎么想的。同时总结一些解决这类问题的方式。避免少走弯路。首先通过问题列表的形式来回答一下部署遇到的基本问题。
一、问答列表
1、ubuntu下不能识别手机问题
    这是因为android sdk 中 platform-tools下大adb没有权限访问设备的信息,所以在设备管理器中显示一堆乱码,解决这个问题的方式就是通过su权限去关闭和开启服务。但是一定要注意两次操作都要用sudo,才可以。adb的目录为: sdk/platform-tools/  下,如果你不知道我说的那个sdk的话请移步这篇文章。执行命令为:
sudo ./adb kill-server
sudo ./adb start-server
2、NDK_ROOT 查找不到问题,ADB not responding
    这两个问题其实是一个问题,NDK_ROOT 需要配置在~/.bashrc下。这个就是相当于windows下大user path,配置在这里,每个用户都可以访问到这个变量。是否配置好了需要通过echo $NDK_ROOT验证,若果正确打印出来,说明配置没有问题。但我在运行工程目录下的bulid_native.sh时,始终提示在找不到NDK目录下的
make程序,但是cd到对应目录是可以找到的。到这里令人非常郁闷,就先抛下这个问题。继续查找ADB not responding 的问题,后来找到了问题的关键(https://developer.android.com/sdk/installing/index.html)。原来我是64的系统,所以必须安装一个包。安装好后一切都正常了。包括NDK_ROOT的问题,估计在没安装这个包的时候,是系统找不到正确版本的make程序。安装ia32-libs的命令如下:
apt-get install ia32-libs
3、程序如何识别编译环境问题
    其实这个问题已经困扰我很久,只不过没有遇到这个问题前一直没有深究,在加载eclipse linux项目的时候我选择的编译器是cross gcc,系统默认的。就没有过多注意。结果悲剧就来了。引擎始终识别不了平台类型。问了好友小胖同学,小胖告诉我代码里判断平台代码。其实就是知其所然,不知其所以然。通过看源代码,发现引擎是通过查找系统CC_TARGET_PLATFORM。而这个值是通过编译器来查找的。所以必须选择linux
gcc,才会CC_TARGET_PLATFORM = LINUX。这也是检测平台很好的方法。
4、引用lib问题
     在android工程里需要包含lib文件,其实就是通过ndk将cocos2d的几个库打包成了java可以调用的库。这个容易理解,可以直接把包含lib文件的工程导入进来,也可以直接将生成的lib文件拷贝到自己的lib库文件夹里就可以了。
5、引用头文件问题
     这个问题比较简单,只不过是cocos2d-x自己的目录结构不够好而已。本来 引用coscos2dx根目录就可以了,但是由于cocos2d.h放在根目录的include文件下。要知道编译器在编译阶段根据是<>和""分别去系统目录查找头文件和当前目录查找头文件,如果有目录包含也是以当前目录去查找。后来想了想,也许cocos2dx的目的是不要包含根目录,而是去根目录查找。只要包含cocos2dx所在目录就可以了。从cocos2dx在inlcude所在的目录就明白了。
6、模拟器问题
      模拟器其实问题不大,要注意android sdk的版本,如果和模拟器的版本对不上,就会报错。同时模拟器出现异常,重启是个好方法。因为模拟器这东西不能对其期望太高。何况真机android平台各种假死,异常屡见不鲜。如果配置的模拟器不能满足需求,不要重新编辑保存,而是直接删除重建。因为我编辑保存后,在运行游戏的时候还是报异常,后来在stackoverflow 找到这种问题的处理办法就是删除模拟器,新建模拟器。
二、最终的思考
     通过这一系类的折腾,部署好了环境。现在看我在这写文章很轻松,其实我自己在处理这些问题并不轻松。所以我在想为啥会遇到这些问题?如何避免这种问题发生。因为在之前很多的开源项目,在我部署的时候也是问题重重。
     1、linux 并不是大众平台,从一个好用的输入法就可以看出来。要知道这些商业公司,对mac os开发了很多好用的日常软件,但没有linux的。更是说明了,商人都是围绕利益出发的,这是核心。就如三体里面的宇宙丛林法则。不管说的多么好,法则是不会变的。
     2、互联网的资料存在太多的噪音,这也是我不爱看电子书的原因,很多电子书都包含大量的错误,大脑里装了太多错误的知识,在你选择的时候,它们就发挥作用了。用女朋友的话说,就是烟囱口上招手,往黑道上引啊。
     3、对自己所用的平台并没有认真的分析。网上好多资料都是32位系统的,包括android sdk 并没有区分操作系统的架构体系。所以需要装补丁。在下载android sdk的时候其实说明页面是有提到64位ubuntu系统问题的。但可恶的是折叠了这部分东西。
     4、对编译器,操作系统理解的不够深刻。比如说上面提到的cocos2dx是如何判断平台的,大家都知道引擎可以自己判断,那到底如何判断的呢?其实对编译器熟悉的话,都知道不同的编译器会定义自己的符号,通过检测编译符号就知道是什么平台。
     5、并没有将自己的已知的知识很好的应用,其实对于相对路径,系统查找文件的方式,都很清楚,但遇到问题的时候还是怀疑这些,这就像化学反应中,要控制住不变量,才能得到实验结果。但是自己内心一乱,把这些正确的东西也改的不对了,增加了正确方向的可变因子。做人也一样,要确认自己的优势,以及能力。这样才能做到比较正确的抉择。可变因子变少了,意味着干扰因素少了。成功的概率就提高了。
三、参考资料

ubuntu下搭建cocos2dx编程环境-下的更多相关文章

  1. ubuntu下搭建cocos2dx编程环境-中

        上篇文章里讲了在ubuntu下部署cocos2d-x开发环境,这篇文章主要示范在ubuntu下部署cocos2d-x android开发环境.分开写就是因为我看很多文章里都将这两件事情混杂着写 ...

  2. ubuntu下搭建cocos2dx编程环境-上

        这大半年一直在开发flash游戏,用到的编程语言是actionscript和c++.所以这次公司决定开发手游端的话,C++不是很生疏,这是个好消息.坏消息是由于现在网页游戏还没有上线,所以公司 ...

  3. windows环境下搭建Cocos2d-X开发环境

    最近终于有时间可心搞搞自己的东西了,呵呵,那就开始做个手机小游戏给孩子玩吧. 首先必须选定开发的框架,移动终端开源的游戏框架貌似不多,找来找去也就这个了,名字简单Cocos2d-X,是Cocos2d国 ...

  4. ubuntu下搭建gtk+编程环境

    首先gtk+项目主页为: http://www.gtk.org/ gtk+现在有2和3两种版本,使用 sudo apt-get install gnome-core-devel 可以一次性安装2个版本 ...

  5. 在windows下搭建汇编编程环境

    汇编语言程序搭建masm+debug 下载链接 dosbox:链接:https://pan.baidu.com/s/1TgkfU-d5w6Nz9TOYro1pYw 密码:mp83 masm:链接:ht ...

  6. mac 下搭建php 编程环境全过程

    1,打开终端, 设置root密码sudo passwd root输入密码 2, 安装 apachemac 自带apache 启动apachectl start重新启动apachectl restart ...

  7. ubuntu 中 搭建 C编程环境

    在 ubuntu 中 使用 快捷键 Ctrl + Alt + T 打开 终端 在终端输入 gcc 查看 有没有安装 gcc (c语言的编译器) ( 我这里是 已经 安装 好的 ) 进行 安装 gcc ...

  8. Ubuntu 12.04下搭建Qt开发环境

    http://download.qt.io/official_releases/qt/ Ubuntu 环境下Gtk与Qt编译环境安装与配置(系统环境是Ubuntu 12.04) 1.配置基础开发环境G ...

  9. Ubuntu系统下搭建Python开发环境

    之前演示了在Windows中安装Pycharm,很简单.下面介绍一下如何在Ubuntu中安装Pycharm 1.更新Python至3.5.1,执行以下命令: sudo add-apt-reposito ...

随机推荐

  1. typings的理解

    简介一些js库扩展了JavaScript的特性和语法,但是TypeScript编译器并不识别,通过typings.json配置可以辅助IDE,给出有智能的提示信息,以及重构的依据.因此需要在typin ...

  2. Ajaxadr ajax跨域请求crossdomain

    最近工作需要用到ajax跨域请求参数,网上找很很久,最终得到解决之道.分享一下吧,希望能帮到各位 也许你已经发现在浏览器直接敲路径能获得对方提供接口的参数,而一到项目中Ajax请求却老是失败.原因是, ...

  3. PBOC2.0与3.0的区别

    一.PBOC规范颁布的历程 1997年12月,PBOC V1.0  定义了五个方面的事项  电子钱包/电子存折应用(EP,ED)  卡片和终端的接口  卡片本身的技术指标  应用相关的交易流程  终端 ...

  4. java类中定义接口

    今天看到一个java类中定义了接口,写个备忘录,记录一下 package com.gxf.test; public class Test_interface { public interface sh ...

  5. ASCII码排序

    ASCII码排序 时间限制:3000 ms  |  内存限制:65535 KB 难度:2   描述 输入三个字符(可以重复)后,按各字符的ASCII码从小到大的顺序输出这三个字符.   输入 第一行输 ...

  6. Eclipse的python插件安装

    网上找了一些资料都没有成功~~然后自己装的过程中编辑记录了一些 当然博客园里也有人用这一种方法也可以参考IBM中的 http://www.cnblogs.com/visec479/p/4139882. ...

  7. 【 Regular Expression Matching 】cpp

    题目: Implement regular expression matching with support for '.' and '*'. '.' Matches any single chara ...

  8. nginx简单反向代理和负载均衡(ubuntu)

    nginx简单反向代理与负载均衡 环境:三台ubuntu 12.04.5 虚拟机    均装有nginx 1.1.19 以下u1(192.168.240.129) ,u2(192.168.240.13 ...

  9. Installing Ruby 1.9.3 on Ubuntu 12.04 Precise Pengolin (without RVM)

    02 MAY, 2012 The new Ubuntu release has just rolled around and with it a slew of new packages. Perso ...

  10. 【CentOS】安装jdk

    问题描述:       jdk安装与配置   (1)查看是否安装jdk --CentOS默认自带openjdk         先查看 rpm -qa | grep java         显示如下 ...