cocos2d-x-2.2 window下配置笔记(ADT+android-ndk-r9b) 无cygwin

本人新手+菜鸟。这里只是记录我的配置过程备用。

工具:

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\cocos2d-x-2.2 如下图

COCOS2DX路径为D:\cocos2d-x\android-ndk-r9b



通过这两步,我们发现所有报错的信息都消失了,

D:\cocos2d-x-2.2.2\cocos2d-x-2.2.2\cocos2dx\platform\android\java\src下的org目录拷贝到相应的目录下也能解决相应的问题


我们尝试编译下 发现编译报错:

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就可以了

接下来会出现错误如

  1. E:/Acocos2d-x/cocos2d-1.0.1-x-0.11.0/MyBilliard/android/jni/../../Classes/HelloWorldScene.cpp:27: undefined reference to `GameLayer::GameLayer()'  
  2. E:/Acocos2d-x/cocos2d-1.0.1-x-0.11.0/MyBilliard/android/jni/../../Classes/HelloWorldScene.cpp:27: undefined reference to  
解决方法也很简单

android的nkd编译需要将每个cpp尽心进行声明

进入jni-->Classes目录下的Android.mk

[plain]  view plain copy print ?
  1. LOCAL_SRC_FILES := AppDelegate.cpp \  
  2.                    HelloWorldScene.cpp  

在后面跟上你所有的cpp文件

如下:

[plain]  view plain copy print ?
  1. LOCAL_SRC_FILES := hellocpp/main.cpp \  
  2.                    ../../Classes/AppDelegate.cpp\  
  3. ../../Classes/BaseLayer.cpp\  
  4. ../../Classes/BaseScene.cpp\  
  5. ../../Classes/BaseSprite.cpp\  
  6. ../../Classes/BaseTower.cpp\  
  7. ../../Classes/CitymanEnemy.cpp\  
  8. ../../Classes/CleanerTower.cpp\  
  9. ../../Classes/GameLayer.cpp\  
  10. ../../Classes/GameScene.cpp\  
  11. ../../Classes/HelloWorldScene.cpp\  
  12. ../../Classes/Waypoint.cpp\  


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值