相关工具

  • 下载 Android SDK
  • 下载和安装 Android NDK版本不要选r9的.用r8e!r9会报错
  • 下载安装JDK版本是 jdk-7u13-windows-x64.exe
  • 下载和安装Cygwin
  • 使用git工具下载cocos2d的源码,注意tag不要为dev版本.

使用Cygwin下载下列命令:

autoconf, automake, binutils, gcc-core, gcc-g++, gcc4-core, gcc4-g++, gdb, pcre, pcre-devel, gawk, make

设置环境变量

windows 环境变量

JAVA_HOME   C:\Program Files\Java\jdk1.7.0_09
NDK_ROOT E:\services\android-ndk

加入PATH中:

E:\Portable\cygwin\bin;    						#这个放在path的最前面
C:\Program Files\Java\jdk1.7.0_09\bin;
E:\services\android-sdk-windows\tools;
E:\services\android-sdk-windows\platform-tools;

cygwin环境变量

Windows的文件的cygwin下没有权限,文件的权限显示的是----------+,没有读写的权限。添加这行到

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

到vi /etc/fstab文件.

vi  .bash_profile
NDK_ROOT=e:\android\android-ndk-r8
export NDK_ROOT

可以才cygwin中执行以下命令查看环境变量:

	env|grep xxx

创建项目

	 chmod -R 775  cocos2d-x    //首先更改下目录的权限,如果不行的话手动更改
cd /cygdrive/e/workspace/js/cocos2d-x/tools/project-creator/
./create_project.py -project MyGame -package com.MyCompany.AwesomeGame -language javascript //建立新项目

使用eclipse编译

1.设置COCOS2DX变量

  • Eclipse->Preferences->General->Workspace->Linked Resources
  • 点击右侧 new 按钮添加新变量COCOS2DX 这个是你的cocos2d-x 的根目录

2.设置C++环境变量 NDK_ROOT和CYGWIN和SHELLOPTS变量

  • Eclipse->Preferences->C/C++->Build->Environment.
  • 点击右侧new 添加新变量 NDK_ROOT .到你的NDK的根目录
  • 点击右侧new 添加新变量 CYGWIN .其值为nodosfilewarning
  • 点击右侧new添加新变量SHELLOPTS,其值为igncr

3.添加 NDK_MODULE_PATH

以下三个位置皆可:

  • 首选项--C/C++--构建--构建变量 类型选择字符窜
  • 项目--属性--构建器--环境--新建
  • 项目--属性--构建起--主要--自变量中填写
	E:\workspace\js\cocos2d-x;E:\workspace\js\cocos2d-x\cocos2dx\platform\third_party\android\prebuilt

4.导入项目

  • File->New->Project->Android Project From Existing Code
  • 点击Browse选择你的项目. eg: cocos2d-x/cocos2dx/samples/Cpp/TestCpp/proj.android/
  • 点击ADD添加这个项目
  • 这个时候会有红叉叉..把cocos2d-x/cocos2dx/platform/android/java加入到src目录下

使用命令行编译

$ cd cocos2d-x/samples/Cpp/TestCpp/proj.android/
$ export NDK_ROOT=/path/to/ndk
$ ./build_native.sh
$ ant debug install

如果这个命令的结果 : sdk.dir missing error then do:

$ android list target
$ android update project -p . -t (id from step 6)
$ android update project -p cocos2d-x/cocos2dx/platform/android/java/ -t (id from step 6)

错误集锦

错误1

如果出现

 *** multiple target patterns. stop

直接删除Lib, Obj两个文件夹重新编译。

错误2

	Android.mk:44: *** [color=#FF0000]commands commence before first target[/color]. Stop.

在Android.mk中检查有没有注释,空行或者空格 Check there are no comments,no space ,no empty line in the src includes of Android.mk

错误3

$ ndk-build clean
Android NDK: Could not find application project directory !
Android NDK: Please define the NDK_PROJECT_PATH variable to point to it.
/cygdrive/c/android-ndk-r4b/build/core/build-local.mk:85: *** [color=#FF0000]Android NDK: Aborting[/color] . Stop.

Fix: include Android.mk location inside global application.mk and Android.mk Run the command from the parent directory with app.mk and and.mk resides

错误4

Please define ANDROID_NDK_ROOT to point to the root of your Android NDK installation.
Use case while executing shell script xxx-desktop:~/bin/u/android-ndk-r5/build/tools$ ./rebuild-all-prebuilt.sh
Please define ANDROID_NDK_ROOT to point to the root of your Android NDK installation.

// Run the script inside NDK root directory like shown below xxx-desktop:~/bin/u/android-ndk-r5/build/tools$ cd .. xxx-desktop:~/bin/u/android-ndk-r5/build$ cd .. xxxx-desktop:~/bin/u/android-ndk-r5$ ./build/tools/rebuild-all-prebuilt.sh

错误5

Android NDK: jni/Android.mk: Cannot find module with tag 'cocos2dx' in import path
Android NDK: Are you sure your NDK_MODULE_PATH variable is properly defined ?
Android NDK: The following directories were searched:
Android NDK:
jni/Android.mk:19: *** Android NDK: Aborting. . Stop.

没有设置NDK_MODULE_PATH

	E:\workspace\js\cocos2d-x;E:\workspace\js\cocos2d-x\cocos2dx\platform\third_party\android\prebuilt

错误6

Cocos2dxActivity cannot be resolved to a type

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

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

两种做法:

  • 1. 只需要将cocos2d-x引擎的根目录的cocos2dx/platform/android/java/src文件夹下文件夹全部复制到项目的src包下即可。
  • 2. 也可以导入cocos2dx/platform/android/java这个工程生成一个jar文件添加到项目的libs文件夹下即可。
05-08 15:29