版本

  • Cocos2d-x: cocos2d-2.1beta3-x-2.1.1
  • OS X: 10.8
  • Android ADT Bundle: v21.1.0
  • Android NDK: android-ndk-r8d
  • Device: Android 4.2.1
    这次我们测试的设备安装的是Android4.2.1, Cocos2d-x能支持Android2.2以上版本.

文件路径:

  • Cocos2d-x: /opt/cocos2d-2.1beta3-x-2.1.1
  • Android ADT Bundle: /opt/adt-bundle-mac-x86_64
  • Android NDK: /opt/android-ndk
    下文中提及的这些路径, 请替换成您自己的路径

下载最新版本Cocos2d-x

您可以在Cocos2d-x官网找到下载页面
解压后到您需要的位置, 本文假设解压到以下位置

1
/opt/cocos2d-2.1beta3-x-2.1.1

检查JDK

在终端中输入

1
java -version

如果您没有安装JDK, 系统会帮您自动安装JDK.

安装过后您会看到如下输出

1
2
3
java version "1.6.0_37"
Java(TM) SE Runtime Environment (build 1.6.0_37-b06-434-11M3909)
Java HotSpot(TM) 64-Bit Server VM (build 20.12-b01-434, mixed mode)

下载最新版本Android ADT Bundle

Google将Android SDK, Eclipse, ADT(Android Developer Tools)打包在一起,称作Android ADT Bundle, 简化了Android开发环境的搭建.
您可以在Android官网找到下载页面
解压到您需要的位置, 本文假设解压到以下位置

1
/opt/adt-bundle-mac-x86_64

在终端中运行下面命令, 将ADT中的Eclipse放入您的程序文件夹, 方便启动

1
ln -s /opt/adt-bundle-mac-x86_64/eclipse/Eclipse.app/ /Applications/Eclipse-ADT.app

在/Applications中或者Launchpad中找到并打开Eclipse-ADT

Eclipse的Retina支持

如果您在使用带Retina的Mackbook Pro, Eclipse暂时还不支持Retina. 但有一个简单的解决方案

  1. 在 /opt/adt-bundle-mac-x86_64/eclipse 找到 Eclipse.app
  2. 编辑Contents/Info.plist
  3. 找到
1
2
</dict>
</plist>

在其上面添加

1
2
<key>NSHighResolutionCapable</key>
<true/>
  1. 将Eclipse.app移动到新的文件夹, 然后再移动回来. (防止系统缓存了上面提及的Info.plist)
  2. OK啦.

Android SDK Manager

Android ADT Bundle中是包含了Android SDK Manager的. 启动您的Eclipse-ADT. 可以在工具栏中或者菜单中找到Android SDK Manager.

Android NDK

您可以在Android官网找到Android的下载页面
下载后解压到您需要的位置, 本文假设解压到以下位置

1
/opt/android-ndk

设置环境变量

我们需要将SDK, NDK以及Cocos2d-x的路径中添加到环境变量中. 将以下内容添加到~/.bash_profile文件

1
2
3
4
5
6
export COCOS2DX_ROOT=/opt/cocos2d-2.1beta3-x-2.1.1
export ANDROID_SDK_ROOT=/opt/adt-bundle-mac-x86_64/sdk
export ANDROID_NDK_ROOT=/opt/android-ndk
export NDK_ROOT=/opt/android-ndk
export PATH=$PATH:$ANDROID_NDK_ROOT
export PATH=$PATH:$ANDROID_SDK_ROOT

HelloWorld

万事俱备, 我们现在就可以开始激动人心的Cocos2d-x之旅了.
打开终端, 进入cocos2d-x所在目录并执行 /opt/cocos2d-2.1beta3-x-2.1.1/create-android-project.sh文件
根据提示输入对应信息.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Youngs-MacBook-Air:~ young40$ cd /opt/cocos2d-2.1beta3-x-2.1.1/
Youngs-MacBook-Air:cocos2d-2.1beta3-x-2.1.1 young40$ ./create-android-project.sh
use global definition of NDK_ROOT: /opt/android-ndk
use global definition of ANDROID_SDK_ROOT: /opt/adt-bundle-mac-x86_64/sdk
Input package path. For example: org.cocos2dx.example
com.young40.test //这里输入了包名
Now cocos2d-x supports Android 2.2 or upper version
Available Android targets:
----------
id: 1 or "android-17"
Name: Android 4.2
Type: Platform
API level: 17
Revision: 1
Skins: HVGA, QVGA, WQVGA400, WQVGA432, WSVGA, WVGA800 (default), WVGA854, WXGA720, WXGA800, WXGA800-7in
ABIs : armeabi-v7a
input target id:
1 //选择您需要的平台id
input your project name:
HelloWorld //输入项目名称
Created project directory: /opt/cocos2d-2.1beta3-x-2.1.1/HelloWorld/proj.android
.....
Updated project.properties
Updated local.properties
Updated file /opt/cocos2d-2.1beta3-x-2.1.1/HelloWorld/proj.android/proguard-project.txt
Youngs-MacBook-Air:cocos2d-2.1beta3-x-2.1.1 young40$

从以上输出我们可以看到create-android-project.sh这个脚本帮我们在 /opt/cocos2d-2.1beta3-x-2.1.1/HelloWorld 下建立了新项目.

然后我们可以先在终端中调用”build_native.sh”脚本编译该项目的C++部分.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Youngs-MacBook-Air:~ young40$ cd /opt/cocos2d-2.1beta3-x-2.1.1/HelloWorld/proj.android/
Youngs-MacBook-Air:proj.android young40$ ./build_native.sh
NDK_ROOT = /opt/android-ndk
COCOS2DX_ROOT = /opt/cocos2d-2.1beta3-x-2.1.1/HelloWorld/proj.android/../..
APP_ROOT = /opt/cocos2d-2.1beta3-x-2.1.1/HelloWorld/proj.android/..
APP_ANDROID_ROOT = /opt/cocos2d-2.1beta3-x-2.1.1/HelloWorld/proj.android
Using prebuilt externals
make: Entering directory `/opt/cocos2d-2.1beta3-x-2.1.1/HelloWorld/proj.android'
.....
StaticLibrary : libchipmunk.a
StaticLibrary : libextension.a
SharedLibrary : libgame.so
Install : libgame.so => libs/armeabi/libgame.so
make: Leaving directory `/opt/cocos2d-2.1beta3-x-2.1.1/HelloWorld/proj.android'
Youngs-MacBook-Air:proj.android young40$

导入Eclipse-ADT

打开Eclipse-ADT, 点击快捷键command+N打开新建项目窗口并选择Android Project from Existing Code


这时您可能会在eclipse的Problems窗口看到如下错误

1
2
3
The import org.cocos2dx.lib cannot be resolved HelloWorld.java /HelloWorld/src/com/young40/test    line 26 Java Problem
Cocos2dxActivity cannot be resolved to a type HelloWorld.java /HelloWorld/src/com/young40/test line 30 Java Problem
Cocos2dxActivity cannot be resolved to a type HelloWorld.java /HelloWorld/src/com/young40/test line 33 Java Problem

您需要将/opt/cocos2d-2.1beta3-x-2.1.1/cocos2dx/platform/android/java如上面处理一样也作为一个项目导入eclipse中
然后在HelloWorld项目上点击右键选择刷新, 可以看到错误就消失了.

将您的手机设置成调试模式并用USB线连接到电脑, 在Eclipse中运行HelloWorld, 然后就能在手机上看到已经运行的HelloWorld了

好了, 享受您的奇妙的Cocos2d-x之旅吧!

搭建Mac OS X下cocos2d-x的Android开发环境的更多相关文章

  1. 【转】在Ubuntu下建立Eclipse的Android开发环境

    本文将介绍如何建立Ubuntu下基于Eclipse的Android开发环境的方法. 大部分的Android开发者都是使用Eclipse来开发Android,本文将向各位介绍一下建立Ubuntu下基于E ...

  2. 【转】搭建Mac OS X下cocos2d-x的Android开发环境

    http://young40.github.io/blog/2013/02/23/setting-up-android-development-envirment-on-mac-os-x/ http: ...

  3. [入门]在Mac OS X下使用和配置Android Studio

    Android Studio可谓是安卓开发的XCode,流畅的速度+顺眼的UI足以秒杀Eclipse.在Mac OS X可以通过如下的途径获得Android Studio  最新版本的Android ...

  4. Mac OS安装Go语言及配置VSCode开发环境:一个工具(gopls)解千愁

    前言 截止到目前为止,Go语言已经更新到1.14.1,网上的很多教程均已经过时,我在此汇总并整理一下相关的教程,提供一个适合当下的Mac OS教程. 教程中使用了Go在1.11之后推出的依赖包管理工具 ...

  5. windows下Qt5.2 for android开发环境搭建

    windows下Qt5.2 forAndroid开发环境配置 1.下载安装Qt 5.2.0 for Android (Windows 32-bit)   http://qt-project.org/d ...

  6. windows下Qt5.1 for android开发环境配置(PS:Qt5.2出来了哈,稳定)

    说明:以下开发环境配置过程参考了这些文章: http://qt-project.org/wiki/building_qt-android_on_windows http://www.hyarm.com ...

  7. Mac 10.9x下安装配置phonegap3.0开发环境 (涉及android sdk配置)

    最近突然想弄一下phonegap,之前一直是听说,没亲自配置开发过.结果配置过程非常艰难啊.特别是android平台的配置,那叫一个麻烦,网上搜了半天都没找到非常好的资料.文章也都是抄来抄去,最烦的就 ...

  8. Mac OS中使用VScode配置C语言开发环境

    个人博客 chinazt.cc 闲话少叙,直奔主题 下载VSCode https://code.visualstudio.com/download 安装C/C++插件 需要两个插件: 1. cppto ...

  9. windows下Qt5.1 for android开发环境配置

    1.下载安装Qt 5.1.0 for Android (Windows 32-bit, 716 MB)   http://qt-project.org/downloads 2.打开Qt Creator ...

随机推荐

  1. 如何 “解决” WPF中空域问题(Airspace issuse)

    空域问题是由于Winform与WPF在底层渲染机制上有所区别而导致的.多数情况下,开发者为了实现不规则的窗体并承载Winform控件时,遇到此类问题.当WPF窗体设置为允许透明(也就是AllowsTr ...

  2. Could not load type ‘System.ServiceModel.Activation.HttpModule’ from&

    1. 部署网站到IIS7.5,Window 2008的时候出现这个错误   2. 错误信息 Server Error in ‘/’ Application. Could not load type ‘ ...

  3. (转)SQL执行顺序

    SQL语句理解:http://blog.jobbole.com/55086/ 窗口函数/分析函数:http://blog.csdn.net/mfkpie/article/details/1636451 ...

  4. 【ARDUINO】蓝牙(HC-05)透传

    1.蓝牙连接ARDUINO 工作模式:VCC-5.5V GND-GND TXD-RX RXD-TX  工作模式下默认波特率38400 AT模式,在工作模式的基础上KEY-VCC/5.5V 设置从模式: ...

  5. WebSocket入门教程(五)-- WebSocket实例:简单多人聊天室

    from:https://blog.csdn.net/u010136741/article/details/51612594 [总目录]   WebSocket入门教程--大纲   [实例简介]   ...

  6. 细说多线程之Thread VS Runnable

    [线程创建的两种方式] [线程的生命周期] ● 就绪:创建了线程对象后,调用了线程的start(). (注意:此时线程只是进入了线程队列,等待获取CPU服务,具备了运行的条件,但并不一定已经开始运行了 ...

  7. js写css()方法,记得加引号“ ”,除非是数字

    js写css()方法,记得加引号“ ”,除非是数字.如: $("#android").css({ "position": "absolute" ...

  8. 在java中public void与public static void有什么区别 ?

    public void 修饰是非静态方法,该类方法属于对象,在对象初始化(new Object())后才能被调用:public static void 修饰是静态方法,属于类,使用类名.方法名直接调用 ...

  9. Vue.js_数据绑定

    一.文本 data {{data}} <div id="div1">{{message}}</div> <script> var div1 = ...

  10. Flutter入门之有状态组件

    StatefulComponent使用方法入门 在上一篇Flutter入门之无状态组件中我们讲到了无状态组件,所谓的无状态组件指的就是其内部的状态是来自其父组件并使用final类型的变量来存储,当组件 ...