尽管Gradle可调试,ndk-build仍保持在NDEBUG = 1:在Android Studio中为true

时间:2016-10-16 15:30:59

标签: android c++ android-studio android-ndk

我在尝试让Gradle通过NDK构建编译我的JNI代码的调试版本时遇到了很多困难。我已经在build.gradle文件中将调试版本设置为可调试,如下所示:

buildTypes {
    debug {
        debuggable true
        jniDebuggable true
    }
}

如果我查看构建/编辑构建类型,我可以确认交换机正在生效。但是,一旦我检查ndkBuild_build_command.txt目录中的.externalNdkBuild文件,我会注意到以下条目:

NDEBUG=1
APP_PLATFORM=android-9

我可以确认我的JNI代码似乎不可调试。即使断点触发,变量都显示"变量不可用"在LLVM中。

关于为什么NDEBUG即使在调试版本中也会打开的任何想法?作为一个旁注,我也不知道android-9平台在哪里进入......我没有把自己设置在我能找到的任何地方。

1 个答案:

答案 0 :(得分:4)

如果您将Android Studio 2.2与 externalNativeBuild 一起使用,则可以通过参数覆盖在 Application.mk APP_OPTIM=debug中设置NDK_DEBUG=1,例如

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