cocos2d-x问题汇总

  • 在cygwin控制台运行cocos2d-x生成的项目中的build_native.sh时,报错:please define NDK_ROOT.

这个问题是因为,没有配置环境变量,需要做的事情是:

1. 复制/etc/defaults/etc/skel/.bash_profile文件到/home/用户名/目录下。(特别注意:如果cygwin安装后/home自带了.bash_profile,也需要复制。如果使用原来的配置文件,将导致export :command not found,这是一个很奇怪的问题,export作为内建命令居然找不到,不知道是不是cygwin1.7.17-1的一个bug)。

2. 添加命令到.bash_profile文件中:

#ndk-root
NDK_ROOT=/cygdrive/d/WORKBENCH/android-ndk-r8c
export NDK_ROOT

~/.bash_profile每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件.

3. 生成的项目必须在cocos2d-x的根目录不能被更改,因为build_native.sh脚本中有对COCOS2DX_ROOT="$DIR/../.."的设置。

4. 生成完之后就可以导入到eclipse中了。


  • Are you sure your NDK_MODULE_PATH variable is properly defined

Android.mk引用了一个模块,cocos2dx模块,而NDK没有找到它,所以报了这个错,之前的版本是直接包含cocos2dx模块的Android.mk的,所以不会报错而这里使用了import,我们也可以使用之前版本的方法来包含它,但貌似import比之前的方法要更好一些错误信息提示我们,可以通过设置NDK_MODULE_PATH环境变量,这里很有可能设置错误。

这里设置:D:\development\cocos2d-2.0-x-2.0.3;D:\development\cocos2d-2.0-x-2.0.3\cocos2dx\platform\third_party\android\prebuilt



  • make: No rule to make target `/cygdrive/c/cocos2d-x/AppTest/proj.android/../../cocos2dx/CCConfiguration.cpp', needed by `obj/local/armeabi/objs-debug/cocos2dx_static/CCConfiguration.o'. Stop.

You should do a Project->Clean before you build. When you try and build without doing this, it causes that error. I found this solution on http://gameit.ro/2012/01/creating-an-iphone-and-android-cocos2d-x-hybrid-project-updated/. I didn't look to see if there were any other tips/tricks to only doing partial builds, but hopefully it has something.


  • Cocos2dxActivity cannot be resolved to a type

build_native.sh运行成功后,将项目导入到eclipse中后会出现这个问题,事实上在项目中有一个project.properties文件其中有这么一行配置信息:

android.library.reference.1=../../cocos2dx/platform/android/java

它的意思是将此项目文件的上上级文件夹(也就是cocos2d-x引擎的根目录)的cocos2dx/platform/android/java文件夹下的工程作为导入工程的引用,从 ../../这个路径可以看出两点:

1. 生成的项目不能移动到其他目录下,只能在cocos2dx引擎的根目录。

2. 导入到eclipse的时候,不能选择Copy project into workspace这个选项。

但是这样做了,还是会出现这个问题,具体原因我也不知道,但是project.properties中的android.library.reference.1属性官方是推荐在ubuntu下实现。


那我们要怎么做呢?

其实很简单,两种做法:

1. 只需要将cocos2d-x引擎的根目录的cocos2dx/platform/android/java/src文件夹下文件夹全部复制到项目的src包下即可。

2. 也可以导入cocos2dx/platform/android/java这个工程生成一个jar文件添加到项目的libs文件夹下即可。

这两种方法都会在最终生成apk时将依赖复制到其中的。


  • TODO 持续更新

你可能感兴趣的:(cocos2d-x,cocos2d-x)