一、Android 环境搭建

1、安装Andriod-NDK(Native Development Kit)

  新建一个文件夹(eg:NDK),解压Android-NDK,将解压文件与压缩包放在一个目录下(eg:放在NDK中)。

2、安装cocos2d-x

  解压cocos2d-x源文件到任意目录(一般放在你Workspace一起)。

  修改create-android-project.sh文件,修改NDK_ROOT_LOCAL和ANDROID_SDK_ROOT_LOCAL的值,如下:

  NDK_ROOT_LOCAL="/NDK/android-ndk-r8c"(NDK的路径)

  ANDROID_SDK_ROOT_LOCAL="/Users/tfmacmini02/android-sdk-macosx"(Android SDK(Mac OS X平台)路径)

二、Android 编译

1、进入cocos2d-x源文件目录下,执行cocos2d-x下的create-android-project.sh文件(./create-android-project.sh)来创建android项目。

eg:TF-no-Mac-mini:cocos2d-x-2.1.5 tfmacmini02$ ./create-android-project.sh

2、输入包名,包名输入iOS项目中.plist文件的Bundle identifier即可。

eg:Input package path. For example: org.cocos2dx.example

  net.twinfish.DragGame

3、选择Android支持的版本。

eg:Now cocos2d-x supports Android 2.2 or upper version

Available Android targets:
----------
id: 1 or "android-8"
Name: Android 2.2
Type: Platform
API level: 8
Revision: 3
Skins: HVGA, QVGA, WQVGA400, WQVGA432, WVGA800 (default), WVGA854
ABIs : armeabi
----------
id: 2 or "Samsung Electronics Co., Ltd.:GALAXY Tab Addon:8"
Name: GALAXY Tab Addon
Type: Add-On
Vendor: Samsung Electronics Co., Ltd.
Revision: 1
Based on Android 2.2 (API level 8)
Skins: WVGA854, WQVGA400, GALAXY Tab (default), HVGA, WQVGA432, WVGA800, QVGA
ABIs : armeabi

然后输入id号选择版本

eg:input target id:

  1

4、输入工程名称

eg:input your project name:

DragGame

5、Android工程创建完成,在cocos2d-x目录下生成了对应的Android项目。

NOTE:

1)、工程创建完成后,将iOS项目的Classes(iOS自己新建的类都放在Classes下)下的文件全部copy到Andriod项目下的Classes下,

  还有Resources下同样也是全部copy(但是iOS下Resources可能有多级目录,Android下只能都放在Resources这个目录下,不能分子目录)。

2)、修改proj.android/jni/Android.mk文件,修改 “LOCAL_SRC_FILES” 的值,将Classes下的 实现文件(除头文件,eg:cpp、mm)的目录都添加进去。

  eg:LOCAL_SRC_FILES := hellocpp/main.cpp \

../../Classes/AppDelegate.cpp \

../../Classes/GameLayer.cpp \

../../Classes/BoxSprite.cpp \

../../Classes/BallSprite.cpp \

6、然后对该项目进行编译,进入项目下的proj.android目录。

eg:TF-no-Mac-mini:cocos2d-x-2.1.5 tfmacmini02$ cd DragGame/proj.android/

NOTE:

  修改build_native.sh文件,添加下面这条语句到顶部。

  export NDK_ROOT=/NDK/android-ndk-r8c

  当然,为了满足项目需求,可能还需要修改其他的一些,具体因项目而定。

7、执行build_native.sh文件进行编译(./build_native.sh),这里可能需要几分钟。

eg:StaticLibrary : libchipmunk.a

Prebuilt : libwebsockets_static.a <= /Users/tfmacmini02/Projects/cocos2d-x-2.1.5/DragGame/proj.android/../../external/libwebsockets/android/./lib/armeabi/
StaticLibrary : libextension.a
SharedLibrary : libgame.so
Install : libgame.so => libs/armeabi/libgame.so
make: Leaving directory `/Users/tfmacmini02/Projects/cocos2d-x-2.1.5/DragGame/proj.android'

8、然后你就可以通过eclipse导入(import),进行编译运行。但是必须在eclipse下导入cocos2d-x的platprom/android/java文件(cocos2d-x的andriod平台支持文件)。

cocos2d-x 学习笔录:将iOS项目编译成Andriod项目的更多相关文章

  1. cocos2d-x:将iOS项目编译成Andriod项目

    来源:http://www.cnblogs.com/angzn/p/3328049.html 一.Android 环境搭建 1.安装Andriod-NDK(Native Development Kit ...

  2. Swing项目编译成exe,并且打包成安装文件(二)

    前面我们讲到了将Swing项目编译成双击可执行的文件exe,这篇我就教大家怎么把exe打包成需要在电脑安装的那种,首先需要一个工具,Inno Setup 编译器, 下载地址,我这个是汉化版的,双击打开 ...

  3. Maven 学习笔记——将普通的Java项目转换成Maven项目(3)

    将一个普通的java项目转换成Maven项目并不是一个很大的任务,仅仅只需要下面的几步就能将转换成功.下面我是用一个简单的Selenium测试小demon作为例子来说的. 移调项目中所有关联的Libr ...

  4. 如何将 Java 项目转换成 Maven 项目

    本文内容 Java 项目 Maven 项目 Java 项目转换成 Maven 项目 本文主要介绍如何将 Java 项目转换成 Maven 项目.首先要明确的是,用 Maven 管理 Java 项目的确 ...

  5. 转:如何将 Java 项目转换成 Maven 项目

    如何将 Java 项目转换成 Maven 项目 本文内容 Java 项目 Maven 项目 Java 项目转换成 Maven 项目 本文主要介绍如何将 Java 项目转换成 Maven 项目.首先要明 ...

  6. 将Eclipse项目转换成AndroidStudio项目过程中遇到的问题以及解决方法

    将Eclipse项目转换成AndroidStudio项目也不是第一次了,昨天转的时候遇到几个问题: 首先将项目导入androidstudio,导完后报错: 问题一: Error:java.util.c ...

  7. 把Eclipse项目转换成Maven项目

    把Maven项目转换成Eclipse项目只要使用Maven的Eclipse插件就能做到 mvn eclipse:eclipse 其实Maven的Eclipse插件也有把Eclipse项目转换成Mave ...

  8. Myeclipse Java项目转换成Maven项目

    1.在Eclipse中Java项目转换成Maven项目可以在项目右键-->configure-->Convert Plug-in projects..  就可以.而在myeclipse中项 ...

  9. maven项目转成web项目没有生成WebContent目录

    有时候建立maven项目转成web项目没有生成WebContent目录,此时把Dynamic web module 去掉勾选,然后ok,再点开项目的properties,再选中Dynamic web  ...

随机推荐

  1. Oracle简述

    Oracle是甲骨文公司推出的一款大型数据库管理系统.甲骨文公司成立于1977年,总部位于美国加利福尼亚州的红木滩.1989年,Oracle正式进入中国市场:2013年,甲骨文超越 IBM ,成为继 ...

  2. classpath中怎样一次性加入整个目录的jar文件

    linux可以通过shell来处理 1 2 3 for jar in $HOME/lib/*.jar; do     CLASSPATH=$CLASSPATH:$jar done          

  3. node-session

    session cookie 虽然很方便,但是使用 cookie 有一个很大的弊端,cookie 中的所有数据在客户端就可以被修改,数据非常容易被伪造,那么一些重要的数据就不能存放在 cookie 中 ...

  4. Efficient Graph-Based Image Segmentation

    转:http://blog.csdn.net/asongoficeandfire/article/details/8434799 Efficient Graph-Based Image Segment ...

  5. 【hdoj_2082】找单词

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=2082 此题采用母函数的知识求解,套用母函数模板即可: http://blog.csdn.NET/ten_s ...

  6. 六十五 async/await

    用asyncio提供的@asyncio.coroutine可以把一个generator标记为coroutine类型,然后在coroutine内部用yield from调用另一个coroutine实现异 ...

  7. python模式匹配,提取指定字段

    re匹配时分多行模式(re.M)与单行模式(rs.S),多行模式是每一行单独匹配,单行模式是把所有的行当成一行来匹配. 单行模式下.可以匹配换行符. ^$匹配所有字符 import re s='1_2 ...

  8. django使用MySQL时部分配置

    若是Django中使用MySQL,需要在项目名文件目录下(而不是应用文件)的__init__.py文件中添加: import pymysqlpymysql.install_as_MySQLdb()

  9. summernote图片上传功能保存到服务器指定文件夹+php代码+java方法

    1.summernote富文本编辑器 summernote是一款基于bootstrap的富文本编辑器,是一款十分好用的文本编辑器,还附带有图片和文件上传功能. 那么在我们网站中想吧这个图片上传到服务器 ...

  10. 0822JDBC--Java连接数据库

    JDBC定义:    JDBC全称: Java DataBase Connectivity     独立于特定数据管理系统, 通用的sql数据库存取和操作的公共接口, 是一种面向接口编程    JDB ...