相关工具
- 下载 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文件夹下即可。
转载于:https://my.oschina.net/zhepama/blog/265030