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 不支持 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:
在右侧设置 SDK Location 为你的 Android SDK 位置。只有当位置正确,才能正确点击 OK。
Linux 下进入 Android SDK 目录,运行
版本。
Eclipse 切换到 Java Perspective (Eclipse 右上角设置),点击 Eclipse 菜单
SDK 版本。
为了方便起见,我们将 Android SDK 和 NDK 的执行命令等(
此时,通过安装配置,要能完成在 Linux 下使用 Eclipse 开发 Android 应用和 Android Jni 应用,我们才能继续接下来的过程,如果配置出现问题,不能开发 Android 或者 Jni 应用,那么请先解决之 ~
环境搭建过程,如果出现什么问题或者疑问,可以 Google 之,或者在博客之后留言交流 ~
我们首先通过 cocos2d-x 自带的创建脚本创建 Android cocos2d-x 项目。
会在
上篇博文我们简单分析了一下这样的目录组织方式,和其功用。创建好 cocos2d-x android 项目,我们开始编译,
cocos2d-x C/C++ 程序,并且在 libs 目录生成相应的 so 库文件。
看到如上信息,说明已经编译成功,首次编译过程稍微缓慢一点,如果没有出现以上结果,或者编译错误,多是因为系统环境没有配置正确。需要环境变量
为了方便项目管理,我们把
导入本地项目,指定 [HelloWorld/proj.android] 目录导入项目。
导入之后我们发现项目出现感叹号,这是因为 Eclipse 管理此项目的依赖项目并不存在,我们继续用 Eclipse 导入
我们右击 HelloWorld 修改项目属性,找到 Android 项,看到 Library 属性框,所引用的项目出现问题,首先 remove 然后 重新 Add 选择刚才添加的 libcocos2dx 项目。
我们 clean 清空一下 HelloWorld 项目。
此时在我的项目中 AndroidManifest.xml 文件出现
右击项目 Run as -> Android Application 就能运行此应用了
以上问题视自己的具体情况而定,可能出现不同的错误。
此时我们发现 Android 项目中,bin 目录生成了 HelloWorld.apk 文件,这个就是最终的 Android 平台 cocos2d-x 游戏安装包了。并且可以运行。
至此,我们已经能够在 Linux 上运行编译运行 Android 平台的 cocos2d-x 游戏,但是每次我们在编写完 cocos2d-x 游戏源代码,我们都要执行
Linux 下开发 Cocos2d-x 游戏,一遍编写调试,一边运行在 Android 平台,或者两个项目同时进行。这些内容将会在下一篇文章之中 ~
至此还没有完,因为我们移动了项目目录,所以再次执行
将此值设置为 [cocos2dx-path] 的绝对目录,或者使用 COCOS2DX_ROOT 的环境变量。以保证此命令能够执行编译成功。这个问题留给读者自己解决吧 : p
开发 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/javalibcocos2dx 项目。
我们右击 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
相关文章推荐
- Android游戏开发之Cocos2d-android-1 引擎有缺陷 (二)
- Cocos2d-x 结合Box2D开发Android游戏配置方法
- Cocos2d Box2D 开发Android下的 Breakout 撞球游戏
- 【Himi之Cocos2d-iOS游戏开发】系列博文26篇整合以及Android书籍的源码和样章▃11月10日更新第二十六章
- [ IOS-Cocos2d-x (Box2d)游戏开发之四] -Cocos2d-x for android 使用Box2d报错解决
- Android游戏开发十日通(5)- ubuntu中cocos2d-x2.2 android开发环境配置
- 用cocos2d-android开发android游戏时调用box2d中的native本地函数问题
- Cocos2d-x游戏开发之代码如何识别ios平台与android并分开处理
- Android游戏开发十日通(5)- ubuntu中cocos2d-x2.2 android开发环境配置
- 【iOS-cocos2d-X 游戏开发之十五】Cocos2dx中响应Android的Back(返回)与Menu(小房子)事件&&Cocos2dx自动释放粒子内存函数!
- Android游戏开发之Cocos2d-android-1 安装运行 (一)
- cocos2d-x + vs2015 android游戏开发环境搭建 及 新建项目
- 《cocos2d-x手机游戏开发:跨iOS、Android和沃Phone平台》
- 【Cocos2d-x游戏引擎开发笔记(8)】在ubuntu上将游戏发布到Android
- cocos2d android 游戏开发学习——CCAction(二)
- android手机游戏开发Cocos2d-x开发分享
- 【iOS-cocos2d-X 游戏开发之十三】cocos2dx通过Jni调用Android的Java层代码(上)
- 【Cocos2d-X(2.x) 游戏开发系列之二】cocos2dx最新2.0.1版本跨平台整合NDK+Xcode,Xcode编写&编译代码,Android导入打包运行即可!
- Android游戏开发视频教程下载(Android4.3、Cocos2d-x、Untity2D/3D、跨平台引擎技术)