来源:http://www.cnblogs.com/angzn/p/3328049.html

一、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项目

    一.Android 环境搭建 1.安装Andriod-NDK(Native Development Kit) 新建一个文件夹(eg:NDK),解压Android-NDK,将解压文件与压缩包放在一个目录 ...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

随机推荐

  1. jmeter------reponse报错”Unknown column 'XXXXX' in 'where clause'“

    一.问题描述 jmeter添加了与数据库mysql的连接,编写完JDBC Request之后,运行提示报错”Unknown column 'be7f5b6e750bb6becf855386338644 ...

  2. WPF 获取指定文件的Icon

    C# var icon = System.Drawing.Icon.ExtractAssociatedIcon(@"filepath"); var m = new MemorySt ...

  3. openssl解析国密X509证书

    openssl解析国密X509证书,把公钥拿出来重写一下就行了        x = strToX509(pbCert, pulCertLen);dwRet = getCertPubKey(x, &a ...

  4. Linux Shell 文本处理工具

    Linux下使用Shell处理文本时最常用的工具: find.grep.xargs.sort.uniq.tr.cut.paste.wc.sed.awk: 提供的例子和参数都是最常用和最为实用的: 我对 ...

  5. CodeForces 805B 3-palindrome

    构造. $bbaabbaabbaa......$输出前$n$个即可,这样不需要用到$c$,而且任意相邻三个都不会是回文. #include <cstdio> #include <cm ...

  6. HDU 6025 Coprime Sequence

    枚举,预处理. 预处理前缀$gcd$与后缀$gcd$,枚举删哪一个即可. #include <bits/stdc++.h> using namespace std; int T,n; ]; ...

  7. heartbeat与keepalived的区别

    Heartbeat与Keepalived的区别 Keepalived使用的vrrp协议方式,虚拟路由冗余协议 (Virtual Router Redundancy Protocol,简称VRRP):H ...

  8. vue数据立刻绑定到dom元素

    今天遇到个令人发指的问题 使用vue修改一个数据之后,它不会立刻修改,而是在当前函数执行完毕之后才会进行渲染. 有个很简单的例子 <body> <div id="app&q ...

  9. Linux中用户与组相关配置文件(整理)

    用户与组信息存放位置 说明 注释 /etc/passwd 存放用户基本信息 记录了每个用户的一些基本属性,并对所有用户可读,每一行记录对应一个用户,属性之间通过冒号分隔. 每一个行6个冒号,7个属性. ...

  10. Unity Shader 之 渲染流水线

    Unity Shader 之渲染流水线 什么是渲染流水线 一个渲染流程分成3个步骤: 应用阶段(Application stage) 几何阶段(Geometry stage) 光栅化阶段(Raster ...