zoukankan      html  css  js  c++  java
  • 【转】搭建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.

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

    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

    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.

    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


    这时您可能会在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之旅吧!

    附录:

    可能出现的错误: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重启终端,测试。
  • 相关阅读:
    关于可控进程数的PHP多进程以及信号控制
    编译安装PHP遇到的问题
    MySQL数据的导入导出
    关于svn的dump和load命令
    Nginx多域名的泛解析
    kafka
    JavaScript
    失误与经验
    Hadoop
    Storm
  • 原文地址:https://www.cnblogs.com/yssgyw/p/3292294.html
Copyright © 2011-2022 走看看