Cocos2d-x 3.0正式版及android环境搭建详细教程
今天我们将详细介绍Cocos2d-x 3.0正式版及Android环境的搭建过程。实际上,3.0正式版的环境搭建和之前的RC版基本相同,网上已有很多相关教程,这里我将分享自己的搭建经验。
开发环境说明
我的开发环境是:mac + xcode + eclipse 。Windows环境的搭建过程与Mac基本一致,唯一的区别在于环境变量的配置。
环境搭建步骤
1. 下载必要的工具和资源
- Cocos2d-x 3.0正式版:可从http://www.cocos2d-x.org/download下载。
- Android SDK和NDK:访问http://developer.android.com/sdk/index.html进行下载。
- Ant:从http://ant.apache.org下载。(注:Cocos2d-x的环境变量配置需要用到Ant,主要是Android开发会使用到它)
- Python 2.7.6:请从https://www.python.org/download/releases/2.7.6/下载,注意不要下载Python 3.0以上的版本,正常情况下Mac系统自带Python 2.7.x,无需额外下载。
2. 配置环境变量
2.1 配置 .bash_profile 文件
该文件位于 /Users/xuzhiwei/.bash_profile,若不存在可自行创建。在文件中添加以下内容:
export NDK_ROOT=/Users/xuzhiwei/Develop/program/android/android-ndk-r9d
export ANDROID_SDK_ROOT=/Users/xuzhiwei/Develop/program/android/adt-bundle-mac-x86_64/sdk
export ANT_ROOT=/Users/xuzhiwei/Develop/program/apache-ant-1.9.3
export PATH=$ANT_ROOT/bin:$PATH
以上配置完成了Android SDK、NDK和Ant的环境变量设置。
2.2 配置Cocos2d-x 3.0的环境变量
只需运行3.0目录下的 setup.py 脚本即可:
python setup.py
根据提示执行以下命令刷新配置文件:
source /Users/xuzhiwei/.bash_profile
至此,环境搭建的基础配置完成。
3. 创建项目
使用过Cocos2d-x 3.0的开发者都知道有个 cocos 命令,执行 cocos -h 可查看帮助信息。这里我们直接创建项目:
cocos new MyGame -p com.your_company.mygame -l cpp -d ~/Projects
上述命令创建了一个名为 MyGame 的项目,包名为 com.your_company.mygame,使用C++语言,项目存放路径为 ~/Projects。
4. 项目编译和运行(Xcode)
找到创建的项目目录,使用Xcode打开项目,然后运行编译即可。
5. Android环境配置和编译
5.1 编译项目
进入到 proj.android 目录下,通过以下命令执行编译:
python build_native.py
5.2 解决Eclipse项目中的包缺失问题
编译完成后,使用Eclipse打开项目,可能会看到有红色的 “*” 提示,这是因为缺少包。可通过以下两种方式解决:
- 方法一:将
test3.0/cocos2d/cocos/2d/platform/android/java/src下的类包拷贝到当前项目的src目录下。 - 方法二:通过类库项目的方式进行引用。
为了避免每次创建项目都手动拷贝类包,我们可以修改模板中的 build_native.py 文件,让命令自动完成类包的拷贝。
5.3 修改模板类中的 build_native.py 文件
在 cocos2d-x-3.0/templates/cpp-template-default/proj.android 目录下找到 build_native.py 文件进行修改,以下是关键修改部分的代码:
def copy_resources(app_android_root):
# remove app_android_root/assets if it exists
assets_dir = os.path.join(app_android_root, "assets")
if os.path.isdir(assets_dir):
shutil.rmtree(assets_dir)
# copy resources
os.mkdir(assets_dir)
resources_dir = os.path.join(app_android_root, "../Resources")
if os.path.isdir(resources_dir):
copy_files(resources_dir, assets_dir)
#--------copy cocos_lib_path start------------
def copy_src_files(src, dst):
for item in os.listdir(src):
path = os.path.join(src, item)
if not item.startswith('.') and os.path.isfile(path):
shutil.copy(path, dst)
if os.path.isdir(path):
new_dst = os.path.join(dst, item)
if not os.path.exists(new_dst):
os.mkdir(new_dst)
copy_src_files(path, new_dst)
def copy_src(app_android_root,cocos_root):
android_src_dir = os.path.join(app_android_root,"src")
cocos_src_path = os.path.join(cocos_root, "cocos/2d/platform/android/java/src")
if not os.path.exists(android_src_dir) :
os.mkdir(android_src_dir)
if os.path.isdir(cocos_src_path):
copy_src_files(cocos_src_path,android_src_dir)
#--------copy cocos_lib_path end------------
def build(ndk_build_param,android_platform,build_mode):
ndk_root = check_environment_variables()
sdk_root = None
select_toolchain_version()
current_dir = os.path.dirname(os.path.realpath(__file__))
cocos_root = os.path.join(current_dir, "../cocos2d")
app_android_root = current_dir
copy_resources(app_android_root)
#-----------------add copy src ------------
copy_src(app_android_root,cocos_root)
if android_platform is not None:
sdk_root = check_environment_variables_sdk()
if android_platform.isdigit():
android_platform = 'android-'+android_platform
else:
print 'please use vaild android platform'
exit(1)
if build_mode is None:
build_mode = 'debug'
elif build_mode != 'release':
build_mode = 'debug'
do_build(cocos_root, ndk_root, app_android_root,ndk_build_param,sdk_root,android_platform,build_mode)
修改模板的好处是一次修改,多次使用。修改完成后,创建一个新项目,执行 python build_native.py 命令,就会发现类包已自动打包进项目。
6. 方便复制 .cpp 文件到 android.mk
为了方便以后将创建的 .cpp 文件复制到 android.mk 中,我们可以往模板的 proj.android 目录下的 JNI 目录添加 list.sh 文件。
- 下载包:
list.sh.zip - 使用方法:
./list.sh ../../Classes执行上述命令后,会列出
Classes目录下的.cpp文件,可直接复制到android.mk目录下。
整个Cocos2d-x 3.0正式版及Android环境的搭建过程就完成了,虽然步骤较多,但按照上述步骤操作,相信你能顺利搭建好开发环境。