是否可以在Gradle中声明一个可用于Android NDK中的C ++和Java的变量?

时间:2017-02-20 03:16:13

标签: android-ndk

我有一个Android NDK本机项目,我想在C ++和Java代码中使用相同的常量。

the document我知道我可以将Gradle文件中的Android资源声明为

android {
    buildTypes {
        debug{ resValue "string", "app_name", "My App Name Debug" }
        release { resValue "string", "app_name", "My App Name" }
    }
}

然后我可以使用@ string / app_name或R.string.app_name

在我的Java代码中访问

是否有一种机制可以在我的本机C ++代码中访问这些声明,这些代码是作为Gradle构建过程的一部分编译的?

1 个答案:

答案 0 :(得分:1)

我认为你不能直接从c ++访问声明。我可以想到另外两种方法 - 使用Java方法返回所需的声明(每个或一个数组的方法,由您决定),或者使用LOCAL_CPPFLAGS将声明传递给编译器,每个声明使用-D ,例如-Dapp_name ="我的应用名称调试" (您可以将其直接设置为在gradle构建期间可用的任何变量。您可能必须更改为此构建JNI代码的方式。