在strings.xml中
<resources>
<string>name="app_name">App_Name</string>
<string>name="app_port">https://example.com</string>
<string>name="app_key">App_Key</string>
</resources>
在build.gradle中
productFlavors {
production {
applicationId = "com.example.production"
}
staging {
applicationId = "com.example.staging"
//code to manipulate strings.xml value because for production and staging app_name, app_port and key are different
}
}
我需要一个代码来处理build.gradle文件的productFlavours中的strings.xml,而不是为staging和production创建单独的文件夹。
答案 0 :(得分:2)
我找到了答案。在gradle中使用 resValue ,如下所示
vector<shared_ptr<A> > alpha;
// in struct A
static shared_ptr<A> create()
{
shared_ptr<A> pointer = make_shared<A>();
alpha.push_back(pointer);
return pointer;
}
它将在build目录中创建generated.xml文件。 要获取代码中的值,请使用生成的资源,如下所示,
productFlavors {
production {
applicationId = "com.example.production"
resValue 'string', 'APP_NAME', 'app_name'
}
staging {
applicationId = "com.example.staging"
resValue 'string', 'APP_NAME', 'app_name_stage'
}