gpt4 book ai didi

android - 如何保持发布版本的断言活跃

转载 作者:行者123 更新时间:2023-11-28 04:54:04 24 4
gpt4 key购买 nike

我正在使用 C++ 使用 cocos2d-x 开发 android 应用程序。我想为我的发布版本抛出断言。

我有read这是可能的通过添加

  1. android:debuggable="true"到 AndroidManifest.xml 中的 标签
  2. APP_OPTIM := 调试到 Application.mk 文件

但我想在不禁用优化、使用调试符号或代码中的任何其他调试或跟踪工具进行编译的情况下实现这一点。

我如何在代码中没有任何其他调试或跟踪工具的情况下保持断言在发布版本中处于 Activity 状态。如何进行这样的配置?

最佳答案

assert for android in cocos2d-x 被定义为__android_log_print nkd 函数(在CCPlatformDefine-android.h)你可以用 __android_log_assert

重新定义它
#include "platform/CCPlatformConfig.h"
#if CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID
//Redefine CC_ASSERT for android with __android_log_assert

#ifdef CC_ASSERT
#undef CC_ASSERT
#endif

#ifdef CC_NO_MESSAGE_PSEUDOASSERT
#undef CC_NO_MESSAGE_PSEUDOASSERT
#endif

#ifdef CC_MESSAGE_PSEUDOASSERT
#undef CC_MESSAGE_PSEUDOASSERT
#endif

#include <android/log.h>

#define CC_NO_MESSAGE_PSEUDOASSERT(cond) \
if (!(cond)) { \
__android_log_assert(#cond, \
"cocos2d-x assert", \
"%s function:%s line:%d", \
__FILE__, __FUNCTION__, __LINE__); \
}

#define CC_MESSAGE_PSEUDOASSERT(cond, msg) \
if (!(cond)) { \
__android_log_assert(#cond, \
"cocos2d-x assert", \
"file:%s function:%s line:%d, %s", \
__FILE__, __FUNCTION__, __LINE__, msg); \
}

#define CC_ASSERT(cond) CC_NO_MESSAGE_PSEUDOASSERT(cond)

#endif //CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID

关于android - 如何保持发布版本的断言活跃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47553467/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com