在Android上编译C ++程序:未定义函数断言

时间:2019-04-17 03:12:51

标签: android gradle android-ndk android-gradle

我正在尝试在Android上编译C ++程序,但由于assert未定义,因此无法编译。

我在网上找到了一些提示,但没有一个起作用:

我已经在myApplication.mk中设置了APP_OPTIM=debug

我已经通过参数覆盖设置了NDK_DEBUG=1,例如

externalNativeBuild {
  ndkBuild {
    arguments "NDK_DEBUG:=1"
  }
}

我已经在Android清单文件中设置了android:debuggable="true"属性。

我已经设置了构建类型,并将debuggable切换为true和false

buildTypes { 
    release {
        debuggable true
        ...
    }
    debug {
        debuggable true
        ...
    }
}

我不知道还能做什么。断言仍未定义。我必须#define assert ;一个空语句才能进行编译。我想用正确的方式做。

1 个答案:

答案 0 :(得分:-1)

我也在使用CMake并能够使用assert。

enter image description here

我建议您尝试从android-studio'文件->新项目->选择项目(向下滚动并选择本机C ++)->下一步->下一步完成创建新项目。这将创建包含本机组件的android应用。修改本机组件的.cpp文件以使用assert(include assert.h)并查看其是否有效。

还要检查此帖子是否可以帮助您解决问题。 https://stackoverflow.com/a/9144080/4181904