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

时间:2023-03-08 21:15:31
【转】搭建Mac OS X下cocos2d-x的Android开发环境

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

http://www.cocos2d-x.org/projects/cocos2d-x/wiki/Setting_up_Android_Development_Environment_on_Mac_OSX(youyong)

http://disanji.net/2011/05/17/mac-os%E2%80%94%E8%8B%B9%E6%9E%9C%E6%90%AD%E5%BB%BAandroid%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83/(youyong)

版本

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

文件路径:

  • Cocos2d-x: /Users/yss/Documents/cocos2d-x-2.1.4
  • Android ADT Bundle: /Users/yss/Documents/adt-bundle-mac-x86_64-20130729
  • Android NDK: /Users/yss/Documents/android-ndk-r9
  • 下文中提及的这些路径, 请替换成您自己的路径

下载最新版本Cocos2d-x

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

1
/Users/yss/Documents/cocos2d-x-2.1.4

检查JDK

在终端中输入

1
java -version

如果您没有安装JDK, 系统会帮您自动安装JDK.
【转】搭建Mac OS X下cocos2d-x的Android开发环境
安装过后您会看到如下输出

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

/Users/yss/Documents/adt-bundle-mac-x86_64-20130729

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

1
ln -s /Users/yss/Documents/adt-bundle-mac-x86_64-20130729/eclipse/Eclipse.app/ /Applications/Eclipse-ADT.app

在/Applications中或者Launchpad中找到并打开Eclipse-ADT 【转】搭建Mac OS X下cocos2d-x的Android开发环境

Eclipse的Retina支持

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

  1. 在/Users/yss/Documents/adt-bundle-mac-x86_64-20130729/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.
【转】搭建Mac OS X下cocos2d-x的Android开发环境
【转】搭建Mac OS X下cocos2d-x的Android开发环境

Android NDK

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

1

/Users/yss/Documents/android-ndk-r9

设置环境变量

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

1
2
3
4
5
6
export COCOS2DX_ROOT=/Users/yss/Documents/cocos2d-x-2.1.4export ANDROID_SDK_ROOT=/Users/yss/Documents/adt-bundle-mac-x86_64-20130729/sdk
export ANDROID_NDK_ROOT=/Users/yss/Documents/android-ndk-r9
export NDK_ROOT=/Users/yss/Documents/android-ndk-r9
export PATH=$PATH:$ANDROID_NDK_ROOT
export PATH=$PATH:$ANDROID_SDK_ROOT

HelloWorld

万事俱备, 我们现在就可以开始激动人心的Cocos2d-x之旅了.
打开终端, 进入cocos2d-x所在目录并执行 /Users/yss/Documents/cocos2d-x-2.1.4/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这个脚本帮我们在 /Users/yss/Documents/cocos2d-x-2.1.4/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
【转】搭建Mac OS X下cocos2d-x的Android开发环境
【转】搭建Mac OS X下cocos2d-x的Android开发环境
这时您可能会在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了
【转】搭建Mac OS X下cocos2d-x的Android开发环境

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

附录:

可能出现的错误:http://up2pu.iteye.com/blog/1744746

一、资源错误
Description Resource Path Location Type
error: Error: No resource found that matches the given name (at 'icon' with value '@drawable/icon'). AndroidManifest.xml /MyCocos2dx line 9 Android AAPT Problem
AndroidManifest.xml中
<application android:label="@string/app_name" android:icon="@drawable/icon">
改为
<application android:label="@string/app_name" android:icon="@drawable/ic_launcher">

Mac 可设置环境变量的位置、查看和添加PATH环境变量

http://elf8848.iteye.com/blog/1582137

Mac OS X环境变量设置

首先查看是什么shell:

使用命令echo $SHELL
如果输出的是:csh或者是tcsh,就是C Shell。
如果输出的是:bash,sh,zsh,就是Bourne Shell的一个变种。
Mac OS X 10.2之前默认的是C Shell。
Mac OS X 10.3之后默认的是Bourne Shell。

(1) 如果是Bourne Shell。

直接在主目录下面的.profile或者.bash_profile中修改,如果文件不存在就生成一个。
usermatoMacBook-Pro:~ user$ pico .profile //或用vi / vim都行。

比如这里要添加Android-SDK中的tools的路经到PATH(android后来将一些常用工具比如adb从tools移到platform-tools下面去了),就这样写即可:

export PATH=$PATH:/Android-SDK/android-sdk-macosx/tools

(2) 如果是C Shell
和(1)一样 ,只是编辑的文件名为:.cshrc
pico .cshrc

在mac下设置环境变量

在基于unix/linux的操作系统下进行程序开发,使用环境变量将会方便。通过设置环境变量将可以在任意目录通过输入程序名来执行设定目录下的程序。不需要通过cd将工作目录改变到程序目录再执行程序。而且免去了输入"./"的麻烦。

长话短说,具体步骤如下(在bash下):

1,打开 应用程序 -> 实用工具 -> 终端;
2,在终端中定位到自己用户的主目录,输入: cd ~ ;
3,创建一个空文件,输入:touch .bash_profile ;
4,编辑这个文件,输入:open .bash_profile ;
5,在这个文件中输入:export PATH=${PATH}:<文件目录> ;(将"<文件目录>"替换成自己想要的目录)export PATH=${PATH}:/Users/rye/android/android-sdk-mac_x86/tools;
6,如果需要添加其他的环境变量例如JAVA_HOME,可以输入:export JAVA_HOME=/Library/Java/Home ;
7,source .bash_profile重启终端,测试。