今天对cocos2d-x编译成android做个笔记,本文使用的是2.2.1版本。这里指记录如何编译。本文主要参考http://blog.csdn.net/sttyytw/article/details/17005263
1、创建通过python来创建项目
1
<code>python create_project.py </code><code>-</code><code>project helloworld </code><code>-</code><code>package com.xzw.game </code><code>-</code><code>language cpp</code>
另外提供批处理,方便下次创建:
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<code>@</code><code>echo</code> <code>off</code>
<code> </code><code>:label1</code>
<code> </code><code>@cls</code>
<code> </code><code>echo</code> <code>欢迎使用Python创建Cocos2d-x工程</code>
<code> </code><code>set</code> <code>/p</code> <code>project=请输入需要创建的工程名:</code>
<code> </code><code>set</code> <code>/p</code> <code>aID=请输入需要创建的android版本包标识名:</code>
<code> </code><code>echo</code> <code>您输入的工程名为%project%</code>
<code> </code><code>echo</code> <code>您输入的android版本包标识名为%aID%</code>
<code> </code><code>echo</code> <code>确认创建工程吗?</code>
<code> </code><code>CHOICE </code><code>/C</code> <code>123 </code><code>/M</code> <code>"确认请按 1,取消请按 2,或者退出请按 3。"</code>
<code> </code><code>echo</code> <code>%errorlevel%</code>
<code> </code><code>if</code> <code>%errorlevel%==1 goto label2</code>
<code> </code><code>if</code> <code>%errorlevel%==2 goto label1</code>
<code> </code><code>if</code> <code>%errorlevel%==3 goto label3</code>
<code> </code><code>:label2</code>
<code> </code><code>echo</code> <code>正在创建工程...</code>
<code> </code><code>python create_project.py -project %project% -package %aID% -language cpp</code>
<code> </code><code>:label3</code>
<code> </code><code>pause</code>
<a href="http://s3.51cto.com/wyfs02/M00/11/67/wKioL1LOZPewKWVhAAH3GcXskgI882.jpg" target="_blank"></a>
创建好后会在cocos2d-x-2.2.1\projects目录下。
2、使用cygwin进入proj.android目录下,然后执行./build_native.sh就可以进行编译了。
<a href="http://s3.51cto.com/wyfs02/M00/11/67/wKioL1LObFGhTbsXAAOZr63cMRA798.jpg" target="_blank"></a>
前提是需要对build_natvie.sh进行修改,这样才能够自动将所需要cocos2d-x的类加到工程中。
首先在cygwin中添加cocos2d-x的配置
<code>COCOS2DX_DIR=</code><code>/cygdrive/e/resource/cocos2d-x/cocos2d-x-2</code><code>.2.1</code><code>/cocos2d-x-2</code><code>.2.1</code>
<code>export</code> <code>COCOS2DX_DIR</code>
然后修改cocos2d-x-2.2.1\template\multi-platform-cpp\proj.android下的build_native.sh文件进行修改。如下图:
<a href="http://s3.51cto.com/wyfs02/M00/11/67/wKiom1LObsbxXSYcAAdvufsrTKI669.jpg" target="_blank"></a>
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
<code>APPNAME=</code><code>"HelloCpp"</code>
<code># options</code>
<code>buildexternalsfromsource=</code>
<code>usage(){</code>
<code>cat</code> <code><< EOF</code>
<code>usage: $0 [options]</code>
<code>Build C</code><code>/C</code><code>++ code </code><code>for</code> <code>$APPNAME using Android NDK</code>
<code>OPTIONS:</code>
<code>-s Build externals from </code><code>source</code>
<code>-h this help</code>
<code>EOF</code>
<code>}</code>
<code>while</code> <code>getopts</code> <code>"sh"</code> <code>OPTION; </code><code>do</code>
<code>case</code> <code>"$OPTION"</code> <code>in</code>
<code>s)</code>
<code>buildexternalsfromsource=1</code>
<code>;;</code>
<code>h)</code>
<code>usage</code>
<code>exit</code> <code>0</code>
<code>esac</code>
<code>done</code>
<code># paths</code>
<code>if</code> <code>[ -z </code><code>"${NDK_ROOT+aaa}"</code> <code>];</code><code>then</code>
<code>echo</code> <code>"please define NDK_ROOT"</code>
<code>exit</code> <code>1</code>
<code>fi</code>
<code>if</code> <code>[ -z </code><code>"${COCOS2DX_DIR+aaa}"</code> <code>];</code><code>then</code>
<code>echo</code> <code>"please define COCOS2DX_DIR"</code>
<code>DIR=</code><code>"$( cd "</code><code>$( </code><code>dirname</code> <code>"${BASH_SOURCE[0]}"</code> <code>)</code><code>" && pwd )"</code>
<code># ... use paths relative to current directory</code>
<code>COCOS2DX_ROOT=</code><code>"$DIR/../../.."</code>
<code>APP_ROOT=</code><code>"$DIR/.."</code>
<code>APP_ANDROID_ROOT=</code><code>"$DIR"</code>
<code>echo</code> <code>"COCOS2DX_DIR = $COCOS2DX_DIR"</code>
<code>echo</code> <code>"NDK_ROOT = $NDK_ROOT"</code>
<code>echo</code> <code>"COCOS2DX_ROOT = $COCOS2DX_ROOT"</code>
<code>echo</code> <code>"APP_ROOT = $APP_ROOT"</code>
<code>echo</code> <code>"APP_ANDROID_ROOT = $APP_ANDROID_ROOT"</code>
<code># make sure assets is exist</code>
<code>if</code> <code>[ -d </code><code>"$APP_ANDROID_ROOT"</code><code>/assets</code> <code>]; </code><code>then</code>
<code> </code><code>rm</code> <code>-rf </code><code>"$APP_ANDROID_ROOT"</code><code>/assets</code>
<code>mkdir</code> <code>"$APP_ANDROID_ROOT"</code><code>/assets</code>
<code># copy resources</code>
<code>for</code> <code>file</code> <code>in</code> <code>"$APP_ROOT"</code><code>/Resources/</code><code>*</code>
<code>do</code>
<code>if</code> <code>[ -d </code><code>"$file"</code> <code>]; </code><code>then</code>
<code> </code><code>cp</code> <code>-rf </code><code>"$file"</code> <code>"$APP_ANDROID_ROOT"</code><code>/assets</code>
<code>if</code> <code>[ -f </code><code>"$file"</code> <code>]; </code><code>then</code>
<code> </code><code>cp</code> <code>"$file"</code> <code>"$APP_ANDROID_ROOT"</code><code>/assets</code>
<code>for</code> <code>file</code> <code>in</code> <code>"$COCOS2DX_DIR"</code><code>/cocos2dx/platform/android/java/src/</code><code>*</code>
<code> </code><code>cp</code> <code>-rf </code><code>"$file"</code> <code>"$APP_ANDROID_ROOT"</code><code>/src</code>
<code> </code><code>cp</code> <code>"$file"</code> <code>"$APP_ANDROID_ROOT"</code><code>/src</code>
<code># run ndk-build</code>
<code>if</code> <code>[[ </code><code>"$buildexternalsfromsource"</code> <code>]]; </code><code>then</code>
<code> </code><code>echo</code> <code>"Building external dependencies from source"</code>
<code> </code><code>"$NDK_ROOT"</code><code>/ndk-build</code> <code>-C </code><code>"$APP_ANDROID_ROOT"</code> <code>$* \</code>
<code> </code><code>"NDK_MODULE_PATH=${COCOS2DX_ROOT}:${COCOS2DX_ROOT}/cocos2dx/platform/third_party/android/source"</code>
<code>else</code>
<code> </code><code>echo</code> <code>"Using prebuilt externals"</code>
<code> </code><code>"NDK_MODULE_PATH=${COCOS2DX_ROOT}:${COCOS2DX_ROOT}/cocos2dx/platform/third_party/android/prebuilt"</code>
3、eclipse导入比运行
<a href="http://s3.51cto.com/wyfs02/M02/11/67/wKiom1LObIfiN_GNAAFIWPOiBMY664.jpg" target="_blank"></a>
<a href="http://s3.51cto.com/wyfs02/M01/11/67/wKioL1LObHviohPVAAHqi_di1BY297.jpg" target="_blank"></a>
运行即可。就这么就记录了。
本文转自xuzw13 51CTO博客,原文链接:http://blog.51cto.com/xuzhiwei/1350191,如需转载请自行联系原作者