您的位置:首页 > 运维架构 > Linux

Linux 下开发 Android Cocos2d-x 游戏

2013-07-01 16:39 387 查看
本文出自[无间落叶](转载请保留出处):http://blog.leafsoar.com/archives/2013/04-22-22.html

开发 Android 应用的首选 IDE 是什么,是 Eclipse ,而开发 Android 平台的 cocos2d-x 游戏呢,当然也是 Eclipse 。


Eclipse Android 开发环境搭建

如果你的 Eclipse 不支持 Java 开发,请安装相关插件,或者使用 Eclipse IDE for Java Developers 版本集成的
Java 开发环境。

仅仅 Java 开发环境还不够,我们还需要 ADT(Android Development Tools)
,顾名思义,通过它,我们才能在 Eclipse 建立 Android 项目,与 Eclipse 集成,打包生成 Android 应用程序包 Apk 文件。

作为 ADT 的依赖环境,Android SDK 也是必须的。

由于 cocos2d-x 是由 C/C++ 编写,为了编译 Android 平台 C/C++ 程序,我们还需要安装 NDK
注意选择 Linux 版本, 32 位或者 64 位视开发机而定。

安装好 Eclipse、ADT 和 Android SDK、NDK,打开 Eclipse 做些简单的配置,打开 Eclipse:

Eclipse -> Window -> Preferences -> Android


在右侧设置 SDK Location 为你的 Android SDK 位置。只有当位置正确,才能正确点击 OK。

Linux 下进入 Android SDK 目录,运行
[android-sdk-linux]/tools/android
,程序,安装相关工具,各种版本的 Android SDK Platform,代码实例等,可以选择 4.1.2
版本。

Eclipse 切换到 Java Perspective (Eclipse 右上角设置),点击 Eclipse 菜单
Window -> Android Virtual Device Manager
创建一个虚拟机,版本对应上一步骤所安装的
SDK 版本。

为了方便起见,我们将 Android SDK 和 NDK 的执行命令等(
[android-sdk-linux/tools] 和 ndk-build
),添加到 Linux 系统 PATH 环境变量。

此时,通过安装配置,要能完成在 Linux 下使用 Eclipse 开发 Android 应用和 Android Jni 应用,我们才能继续接下来的过程,如果配置出现问题,不能开发 Android 或者 Jni 应用,那么请先解决之 ~

环境搭建过程,如果出现什么问题或者疑问,可以 Google 之,或者在博客之后留言交流 ~


创建 Linux Cocos2d-x for Android 项目

我们首先通过 cocos2d-x 自带的创建脚本创建 Android cocos2d-x 项目。

cd [cocos2d-x-path]
./create-android-project.sh # 回车
...
Input package path. For example: org.cocos2dx.example
com.leafsoar.HelloWorld    # 输入包名
...
...
----------
id: 7 or "android-16"
Name: Android 4.1.2
Type: Platform
API level: 16
Revision: 3
Skins: QVGA, WVGA800 (default), WSVGA, HVGA, WQVGA432, WVGA854, WQVGA400, WXGA720, WXGA800, WXGA800-7in
ABIs : armeabi-v7a
input target id:
7    # 输入 target id,参照上面,根据自己的 sdk 版本选择
...
input your project name:
HelloWorld          # 输入项目名称

cd [cocos2d-x-path]/tools/project-creator/

python create_project.py #最新创建脚本,之前的脚本会逐步舍弃
Usage: create_project.py -project PROJECT_NAME -package PACKAGE_NAME -language PROGRAMING_LANGUAGE
Options:
-project   PROJECT_NAME          Project name, for example: MyGame
-package   PACKAGE_NAME          Package name, for example: com.MyCompany.MyAwesomeGame
-language  PROGRAMING_LANGUAGE   Major programing lanauge you want to used, should be [cpp | lua | javascript]

Sample 1: ./create_project.py -project MyGame -package com.MyCompany.AwesomeGame
Sample 2: ./create_project.py -project MyGame -package com.MyCompany.AwesomeGame -language javascript

python create_project.py -project HelloWorld -package org.cocos2dx.example -language cppproj.ios		: Done!
proj.android		: Done!
proj.win32		: Done!
proj.mac		: Done!
proj.blackberry		: Done!
proj.linux		: Done!
proj.marmalade		: Done!
New project has been created in this path: [cocos2d-x-path]/projects/HelloWorld
Have Fun!


会在
[cocos2d-x-path]
[cocos2d-x-path]/projects目录创建一个
HelloWorld
的目录,里面包含文件如下:

HelloWorld/
├── Classes
│   ├── AppDelegate.cpp
│   ├── AppDelegate.h
│   ├── HelloWorldScene.cpp
│   └── HelloWorldScene.h
├── proj.android
│   ├── AndroidManifest.xml
│   ├── ant.properties
│   ├── bin
│   ├── build_native.sh
│   ├── build.xml
│   ├── jni
│   ├── libs
│   ├── local.properties
│   ├── ndkgdb.sh
│   ├── proguard-project.txt
│   ├── project.properties
│   ├── res
│   └── src
└── Resources
├── CloseNormal.png
├── CloseSelected.png
└── HelloWorld.png


上篇博文我们简单分析了一下这样的目录组织方式,和其功用。创建好 cocos2d-x android 项目,我们开始编译,
proj.android
目录下提供一个自动编辑脚本,完成的工作是,编译
cocos2d-x C/C++ 程序,并且在 libs 目录生成相应的 so 库文件。

cd [HelloWorld]/proj.android
././build_native.sh
...
...
...
StaticLibrary  : libextension.a
SharedLibrary  : libgame.so
Install        : libgame.so => libs/armeabi/libgame.so
make: Leaving directory '[cocos2dx-path]/HelloWorld/proj.android' '[cocos2dx-path]/projects/HelloWorld/proj.android'


看到如上信息,说明已经编译成功,首次编译过程稍微缓慢一点,如果没有出现以上结果,或者编译错误,多是因为系统环境没有配置正确。需要环境变量
NDK_ROOT
COCOS2DX_ROOT
等,根据提示具体分析。


配置集成开发环境

为了方便项目管理,我们把
HelloWorld
目录移动到 Ecilpse 的工作空间之中,默认实在[cocos2dx-path] [cocos2dx-path]/projects目录。然后使用 Eclipse
导入本地项目,指定 [HelloWorld/proj.android] 目录导入项目。

导入之后我们发现项目出现感叹号,这是因为 Eclipse 管理此项目的依赖项目并不存在,我们继续用 Eclipse 导入
[cocos2dx-path]/cocos2dx/platform/android/java
libcocos2dx 项目。

我们右击 HelloWorld 修改项目属性,找到 Android 项,看到 Library 属性框,所引用的项目出现问题,首先 remove 然后 重新 Add 选择刚才添加的 libcocos2dx 项目。

我们 clean 清空一下 HelloWorld 项目。

此时在我的项目中 AndroidManifest.xml 文件出现
androi:icon
图标的错误,修改成
@drawable/ic_launcher


右击项目 Run as -> Android Application 就能运行此应用了

以上问题视自己的具体情况而定,可能出现不同的错误。

此时我们发现 Android 项目中,bin 目录生成了 HelloWorld.apk 文件,这个就是最终的 Android 平台 cocos2d-x 游戏安装包了。并且可以运行。

至此,我们已经能够在 Linux 上运行编译运行 Android 平台的 cocos2d-x 游戏,但是每次我们在编写完 cocos2d-x 游戏源代码,我们都要执行
build_native.sh
命令,当然可以简化此步骤,并且将上一偏博文的的
Linux 下开发 Cocos2d-x 游戏,一遍编写调试,一边运行在 Android 平台,或者两个项目同时进行。这些内容将会在下一篇文章之中 ~

至此还没有完,因为我们移动了项目目录,所以再次执行
build_native.sh
命令会出现问题,我们需要修改此文件中的配置:

COCOS2DX_ROOT="$DIR/../.."


将此值设置为 [cocos2dx-path] 的绝对目录,或者使用 COCOS2DX_ROOT 的环境变量。以保证此命令能够执行编译成功。这个问题留给读者自己解决吧 : p
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐