当我们想将我们的cocos的项目发布到android的时候为了在真机下调试,这时候我们需要使用ndk-stack但是如果使用cocos自带的build_native.py会导致看不到android下的C++层的错误信息,这时候我们就需要在eclipse中设置NDK了,基本的工具就不说了,下面的是我的ndk的设置
我使用的是cocos2d-x3.6 官方使用的是ndkr10c 如果你的ndk版本在r10以上你需要将application.mk中的NDK_TOOLCHAIN_VERSION设置成4.8
如果是r9的版本我的事r9d设置成NDK_TOOLCHAIN_VERSION=4.8
按照我的这个设置你还需要设置如下
在Jni文件夹中的application.mk设置如下
第一行修改
APP_STL := c++_static
最后一行添加
NDK_TOOLCHAIN_VERSION = 4.8
由于项目的源代码放在了另一个文件夹下,因此修改android.mk的检索路径如下
# 遍历目录及子目录的函数
define walk
$(wildcard $(1)) $(foreach e,$(wildcard $(1)/*),$(call walk,$(e)))
endef
# 遍历Classes目录
ALLFILES = $(call walk,$(LOCAL_PATH)/../../CastleLib/Classes)
FILE_LIST := hellocpp/main.cpp
FILE_LIST += $(filter %.cpp,$(ALLFILES))
FILE_LIST += $(filter %.c,$(ALLFILES))
FILE_LIST += $(filter %.hpp,$(ALLFILES))
LOCAL_SRC_FILES :=$(FILE_LIST:$(LOCAL_PATH)/%=%)
FILE_INCLUDES := $(shell find$(LOCAL_PATH)/../../CastleLib/Classes -type d)
LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../CastleLib/Classes
接下来,我们还需要修改c/C++ build的设置将build command设置成ndk的cmd
这下你应该可以正常地在eclipse中调试android代码了并能用ndk-stack查看错误堆栈,
不过在eclipse下调试android有一个很恶心的地方是你每次运行的代码并不是你当前编译出来的代码,而是上一次的,也就是说如果你在C++层修改了代码,