本人新手+菜鸟。这里只是记录我的配置过程备用。
工具:
Android SDK:
http://211.162.127.20/download/2618006/2712222/2/zip/254/206/1383309980414_974/adt-bundle-windows-x86_64-20131030.zip
Android NDK:
http://211.162.127.1/download/2620916/2715310/1/zip/152/98/1383323504024_866/android-ndk-r9b-windows-x86_64.zip
Python 2.7.5:
http://www.python.org/ftp/python/2.7.5/python-2.7.5.amd64.msi
cocos2d-x-2.2:
http://211.162.127.24/download/2190343/2271122/1/zip/63/243/1381323443263_499/cocos2d-x-2.2.zip
环境:
win7旗舰版
JAVA SDK 1.7
Android SDK 放D盘根目录
Android NDK和cocos2d-x-2.2 放在 D:\cocos2d-x目录下
工程路径:D:\android_workspace
第一步
JAVA SDK 1.7 和 Python 2.7.5 安装 path classpath配置
JAVA SDK 1.7 和 Python 2.7.5 安装默认即可。
path:C:\Python27\;C:\Program Files\Java\jdk1.7.0_45\bin;
classpath:C:\Program Files\Java\jdk1.7.0_45\jre\lib\rt.jar;.;
第二步
Android SDK 和 Android NDK的安装
Android NDK解压即可
运行解压出来的SDK Manager.exe,把几个新版本就下下来。顺道不eclipse的图标拉出来改名Android。
下载完添加个虚拟机:
以nuxes one 为模板
use host GPU是为OPGL2.0准备的。
第三步
cocos2d-x-2.2 安装
解压新建工程的默认的android版本
在D:\cocos2d-x\cocos2d-x-2.2\tools\project-creator 目录下添加一个bat文件 同时创建快接到桌面 内容如下(代码来自网络)
@echo off
set /p projectName=请输入项目名称:
if "%projectName%"=="" goto inputError
set /p packageName=请输入包标示名:
if "%packageName%"=="" goto inputError
create_project.py -project %projectName% -package %packageName% -language cpp
pause
exit
:inputError
@echo 项目名称或者包标示名不能为空!
pause
运行测试下
生成的工程在D:\cocos2d-x\cocos2d-x-2.2\projects路径下。
打开eclipse 导入我们的工程android版。
修改android版本为4.4
添加cocos2d-x的源码
路径:D:\cocos2d-x\cocos2d-x-2.2\cocos2dx\platform\android\java
为了方便调用我们已项目的形式导入。所以这里新建一个android工程
输入上面的路径,其他默认
好,修改其属性中的android版本。
导入我们新建的项目(刚刚那个Test弄错了 重新建了个CCTest)
然后在eclipse的配置选项中添加两个变量一个是NDK_ROOT另个是COCOS2DX 这另个名字是不可以改的。因为系统通过这个两个变量关联了资源文件。
NDK_ROOT 路径为D:\cocos2d-x\android-ndk-r9b 如下图
COCOS2DX路径为D:\cocos2d-x\cocos2d-x-2.2
通过这两步,我们发现所有报错的信息都消失了,
我们尝试编译下 发现编译报错:
bash D:/cocos2d-x/cocos2d-x-2.2/projects/TestAndroid/proj.android/build_native.sh clean
Cannot run program "bash": Launching failed
Error: Program "bash" is not found in PATH
这个原则上要安装cygwin编译了,我们这里换种方法(我百度了好久出来的,感谢分享出来的网友)
修改C++Bulid的属性如下。
Build Command:D:\cocos2d-x\android-ndk-r9b\ndk-build.cmd
弄好这又报错入下:jni/Android.mk:23: *** Android NDK: Aborting. . Stop.
这个添加如下语句:
$(call import-add-path, D:\cocos2d-x\cocos2d-x-2.2)
$(call import-add-path, D:\cocos2d-x\cocos2d-x-2.2\cocos2dx\platform\third_party\android\prebuilt)
运行下:可以开始编译C++了
卧槽又报错:百度+多次测试发现是build-tools中android-4.4的问题引起的,具体哪个文件引起就不知道了移除就好了
[2013-11-09 16:03:32 - Dex Loader] Unable to execute dex: java.nio.BufferOverflowException. Check the Eclipse log for stack trace.
[2013-11-09 16:03:32 - TestAndroid] Conversion to Dalvik format failed: Unable to execute dex: java.nio.BufferOverflowException. Check the Eclipse log for stack trace.
再次运行又有下面错误
Fatal signal 11 (SIGSEGV) at 0x00000000 (code=1), thread 791 (Thread-72)
这个调用内存错误我弄了好久发现是资源文件没找到
把D:\cocos2d-x\cocos2d-x-2.2\projects\TestAndroid\Resources文件拷到D:\cocos2d-x\cocos2d-x-2.2\projects\TestAndroid\proj.android\assets就可以了
再次运行 ok了