第一个 - 是默认情况下已经定义的NDEBUG,因此断言在#undef之前不起作用。 第二个 - 他们工作,但我没有登录DDMS。
如果有一些特定于android的assert.h?
或者我只是做错了什么?
答案 0 :(得分:13)
如果要使用断言编译代码,则可以通过三种方式进行编译:
答案 1 :(得分:6)
通常程序会因调用SIGSEGV
后的assert()
信号而崩溃,默认情况下NDEBUG
已定义,您可以通过添加标记(LOCAL_CFLAGS += -UNDEBUG
)来关闭汇编但不适用于我的案例。
我发现其他解决方案正在使用__android_log_assert
,只需定义如下,并将assert()
替换为assert3
:
#define assert3(e...) __android_log_assert(e, "TAG", #e)