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