代码改变世界

Mac下Android+NDK+cocos2d-x Native本地调试

2013-12-10 14:10  仙人掌哥  阅读(1206)  评论(0)    收藏  举报

  进入游戏行业,起手就是Mac,工具链什么的都要从头开始摸索了。接手Android项目原先的编译打包方案:编辑jni里的Android.mk,用cocos2d-x里create-android-project.sh生成模板里的build_native.sh编译jni层。但不好调试,只用CCLog太不方便了,至于模板一并提供的ndkgdb.sh我就呵呵了。为了以后的维护,先配置可调试jni层的工具链吧。

      在此记录一下配置工具链步骤。

  步骤1:Android官网下载sdk http://developer.android.com/sdk/index.html自带各种插件

                解压到~/Document/dev_tools文件夹

      步骤2: Android官网下载ndk http://developer.android.com/tools/sdk/ndk/index.html

                解压到~/Document/dev_tools/adt-bundle-mac/文件夹

      步骤3:配置一下环境 我的~/.bash_profile,重启shell

export ANDROID_SDK_ROOT=/Users/oc12/Documents/dev_tools/adt-bundle-mac/sdk
export NDK_ROOT=/Users/oc12/Documents/dev_tools/adt-bundle-mac/android-ndk-r9b
export COCOS2DX_ROOT=/Users/oc12/Documents/dev_tools/2dx_v2.1.0/cocos2dx2.1.0
export PATH=$PATH:$ANDROID_SDK_ROOT
export PATH=$PATH:$NDK_ROOT
export PATH=$PATH:$COCOS2DX_ROOT

export PATH=$PATH:/Users/oc12/Documents/dev_tools/adt-bundle-mac/sdk/build-tools

      步骤4:启动~/Document/dev_tools/adt-bundle-mac/eclipse/Eclipse.app

      点击windows-》Android SDK Manager下载Package API 9

      点击ADT-》Reference-》Android-》NDK页面,点击Browse设置NDK路径

  步骤5:安装插件cdt,这里下载的sdk自带,跳过

      这样工具基本准备好了,接下来改造工程,设工程文件夹路径PROJECT_PATH

 

  为了让编译主体Classes入Eclipse法眼,将Classes放入${PROJECT_PATH}/jni文件夹,自然makefile文件${PROJECT_PATH}/jni/Android.mk里

LOCAL_SRC_FILES和LOCAL_C_INCLUDES要改写,稍微改一下脚本list.sh为list_subdirs.sh用于设置include路径

#!/bin/bash

#append_str=' \'

list_alldir()
{   
    echo $1
    for file in $1/*
    do  
        if [ -d $file ]; then
            list_alldir $file    
        fi  
    done    
}

if [ $# -gt 0 ]; then
    list_alldir "$1"
else
    list_alldir "." 
fi

 ${PROJECT_PATH}/jni运行list.sh结果用于设置LOCAL_SRC_FILES,运行list_subdirs.sh用于设置LOCAL_C_INCLUDES

Eclipse里导入工程,转为native项目

进入项目-》Properties-》C/C++ Build页面,点击Manager Configurations-》New一个新编译配置debug

将页面里Build command改为ndk-build NDK_DEBUG=1

 

设工程对应的cocos2d-x源文件路径COCOS2DX_ROOT,修改${COCOS2DX_ROOT}/cocos2dx/Android.mk

在里面添加以下几句

修改AndroidManifest.xml的Application页面,设置Debuggable为true

设置当前编译配置为debug并Build All

编译完成,工程-》Debug as-》Android Native Application

最后弹出对话框

一切ok