在 Android Studio 中禁用未使用的常量变量构建错误(Gradle 构建)

Disable unused-const-variable build error in Android Studio (Gradle build)

我正在调试 Android 本机 C++ 代码,我有一些用于调试的变量和函数,我想将它们保留在我的代码中。

问题是每次我尝试让我的代码构建失败并出现以下错误

***\android-sdk\ndk-bundle\toolchains\llvm\prebuilt\windows-x86_64\bin\clang++.exe 
    [[REMOVED FOR CLARITY]]
    -Werror=format-security
    -std=gnu++11
    -Wall
    -Werror
    -O0
    -fno-limit-debug-info
    -fPIC -MD -MT CMakeFiles/native-activity.dir/main.cpp.o
    -MF CMakeFiles\native-activity.dir\main.cpp.o.d
    -o CMakeFiles/native-activity.dir/main.cpp.o
    -c ***/app/src/main/cpp/main.cpp
***/app/src/main/cpp/main.cpp:48:19: error: unused variable 'VERTEX_SHADER' [-Werror,-Wunused-const-variable]
    static const char VERTEX_SHADER[] =
                      ^
1 errors generated.
ninja: build stopped: subcommand failed.

这表明如果我想禁用此错误,我需要禁用标志 unused-const-variable

所以我修改了 gradle 构建文件

defaultConfig {
    externalNativeBuild {
        cmake {
            cppFlags '-Wno-unused-const-variable','-Wno-unused-variable'
            arguments '-DANDROID_STL=c++_static'
        }
    }
}

现在,当我尝试构建我的项目时,我看到了相同的错误,除了 cppFlags 添加到命令行参数没有任何效果。

***\android-sdk\ndk-bundle\toolchains\llvm\prebuilt\windows-x86_64\bin\clang++.exe
    [[REMOVED FOR CLARITY]]
    -Werror=format-security
    -Wno-unused-const-variable
    -Wno-unused-variable
    -std=gnu++11
    -Wall
    -Werror
    -O0
    -fno-limit-debug-info
    -fPIC -MD -MT CMakeFiles/native-activity.dir/main.cpp.o
    -MF CMakeFiles\native-activity.dir\main.cpp.o.d
    -o CMakeFiles/native-activity.dir/main.cpp.o
    -c ***/Projects/AndroidNDK/app/src/main/cpp/main.cpp
***/app/src/main/cpp/main.cpp:48:19: error: unused variable 'VERTEX_SHADER' [-Werror,-Wunused-const-variable]
static const char VERTEX_SHADER[] =
                  ^
1 errors generated.
ninja: build stopped: subcommand failed.

我什至尝试从 Android Studio -> Editor -> inspection -> C++ -> Unused Code 中禁用 Unused code,这也没有效果。

问题

如何禁用警告时构建失败或者如果不可能禁用此错误?

注:

我正在使用 android studio 3.4.1 开发 Gradle 构建 NDK 原生 C++ 代码项目

我自己解决了这个问题。 GCC Warning Options 指定:

-Werror: Make all warnings into errors.

-Wall: This enables all the warnings about constructions that some users consider questionable

这些未在 gradle 构建级别上设置,而是包含在 CMakeLists.txt 文件中的下一行

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++11 -Wall -Werror")

简单地删除最后两个选项就足以让我和 cmake 都开心了。 现在我需要修改我的 MAKE 文件以将这些参数包含回发布版本并删除它们以进行调试版本。