首页 > Personal > cocos2d-x > cocos2d-x: windows7下新建工程
2013
12-04

cocos2d-x: windows7下新建工程

使用cocos2d-x自带的工具建立多平台工程,使用vs2012的命令行工具,进入cocos2d-x下的tools/project-creator文件夹,如果没有安装python,安装2.7.6版本。执行create_project.py –project my_game –package com.xxxx.my_game –language javascript生成javascript版本工程。执行后会在cocos2d-x根目录下生成projects/my_game文件夹。里面包含各个平台的工程目录proj.*。

WIN32工程在proj.win32中,使用vs2012打开sln文件编译就可以生成执行文件。中间可能会遇到 链接错误 fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏。上网查找了相关文档,解决方法不一,一是微软连接,二是|配置属性|连接器|清单文件|嵌入清单 “是”改为“否”,我的问题没有效果。三尝试查找文件cvtres.exe,用C:\Windows\Microsoft.NET\Framework\v4.0.30319\,C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin,C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin下版本更高的替换老的文件,问题解决,我的是vs2012下面的版本更高,因为工程sln文件是vs2010的版本,所以可能是vs2010的这个文件版本不够新,bin目录下还有amd64文件夹下也有该文件,可以不用管他。不知道这么修改后,后续其他工程是否会有问题。暂时先不去考虑了,遇到问题再去解决吧。

android工程在proj.android下,在windows上编译android版的工程,需要一系列准备工作。

首先去android官网下载最新的SDKNDK。解压后,在windows环境变量中添加相应环境变量
ANDROID_SDK_ROOT=SDK解压文件夹\sdk
NDK_ROOT=NDK解压文件夹
COCOS2DX_ROOT=cocos2d-x所在文件夹
在PATH变量后面添加 %ANDROID_SDK_ROOT%\tools;%ANDROID_SDK_ROOT%\platform-tools。

开始前还需要安装最新版的cygwin,cygwin组件需要包括autoconf,automake,binutils,gcc-core,gcc-g++,gdb,gawk,make,在PATH环境变量后面加上 cygwin安装目录\bin 的相应目录。
打开cygwin命令行,进入proj.android目录下,运行
android.bat list target 可以看到所支持的target(可以用sdk中的sdk_manager.exe下载不同版本的target)
android.bat update project –p ./ –target android-19(或者-t, 我下载的android ndk最新版代码为19)
android.bat update project –p ../../../cocos2dx/platform/android/java –target android-19(编译工程依赖的cocos2dx平台java工程)
生成相应local.properties文件。

运行./build_native.sh编译。
编译后需要运行ant生成apk安装包,运行ant需要安装最新版的java sdk,环境变量中要有JAVA_HOME变量,然后在PATH环境变量中添加ant所在目录%ANDROID_SDK_ROOT%\..\eclipse\plugins\org.apache.ant_1.8.3.v201301120609\bin,不然会出现找不ant命令的错误。
如果出现错误./build_native.sh: line 2: $’\r’: command not found,一般是文件格式问题,用Notepad++在Edit->EOL Conversion->Convert to UNIX Format转换成unix格式就可以解决。一般是因为git clone自动转换了换行符,尤其windows下可能会发生,配置git config –global core.autocrlf false解决该问题。

运行ant debug。
如果报错没有javac,添加JAVA_HOME环境变量为jdk文件夹,在PATH环境变量后面添加%JAVA_HOME%\bin。
project.properties文件中有一行android.library.reference.1=../../../cocos2dx/platform/android/java,用来依赖cocos2dx中的java工程,但是可能出现build.xml错误。简单的解决方法是,注释带该行,然后将cocos2dx/platform/android/java/src文件夹下的文件拷到proj.android/src下。如果出现import org.cocos2dx.lib.Cocos2dxActivity;相关的错误,一般也是因为这个引用的原因。
如果报错Unable to add ‘***文件’: Zip add failed,是因为文件权限问题,修改相应文件属性里的安全选项添加权限即可。

运行成功后会在bin下看到my_game-debug.apk文件。
打开android SDK目录下的SDK Manager.exe,在菜单toos下选择manage AVDs,打开virtual device manager,新建一个虚拟机,运行虚拟机。
cygwin命令行中运行
adb install bin/my_game-debug.apk
在虚拟机中安装编译好的程序。在虚拟机中运行程序my_game。这个4.4版本的sdk不知道什么原因,程序运行一直都有问题,可能是因为用的最新版的sdk所以cocos2d-x的支持还有问题,但是整个编译已经完成了。
android版本的调试,目前没有找到好的方法,只有使用adb logcat来查看系统log,可以加上grep只显示CCLOG打出来的log,CCAssert的消息也可以显示,
adb logcat|grep cocos2d-x
如果虚拟机一直停留在开机界面,检查环境变量是否有JAVA_HOME,PATH中是否有%JAVA_HOME%\bin目录,环境变量CLASSPATH是否添加了%JAVA_HOME%\lib,添加的JDK,SDK,NDK的环境变量都在系统变量中,不要添加在用户变量里。检查虚拟机的内存是否足够,但是要小于768。而且4.1.2的虚拟机好像更正常一些。
这中间遇到了很多问题,上面简短的写了一下,用来备忘。

如果编译出现类似fatal error C1083: 无法打开源文件:“..\generated\jsb_cocos2dx_studio_auto.cpp”情况,说明你的代码是git clone来的,cocos2d-x里有些代码是submodule,需要submodule init和submodule update来下载更新这些代码工程才能编译通过。

最后编辑:
作者:wy182000
这个作者貌似有点懒,什么都没有留下。

留下一个回复