这是对这篇文章帮助我的答案的延续
我们可以添加字符串资源,如下所示build.gradle:
Run Code Online (Sandbox Code Playgroud)productFlavors { main{ resValue "string", "app_name", "InTouch Messenger" } googlePlay{ resValue "string", "app_name", "InTouch Messenger: GPE Edition" } }
它的作用就像一个魅力,并且每个风格都有不同的app名称.(app_name从strings.xml文件中删除原始字符串资源.
但是,我们如何为这个添加的字符串资源添加本地化字符串build.gradle?
我们可以通过指定区域设置的附加参数吗?
或者
可以使用gradle任务来完成它?
注意:我不能这样做strings.xml(因为我的项目结构的几种方式不可行)
android android-resources android-studio android-gradle-plugin android-productflavors
我正在尝试为每个构建变体重命名我的APK文件,以包含应用程序名称,versionName,versionCode和内部版本号.到目前为止,除了应用程序名称之外,我的所有工
我想使用AndroidManifest.xml文件用于android:label 的相同值.这来自字符串资源@string/app_name.我已经看到了使用以下方法替换资源值的能力:
resValue "string", "app_name", "Some new value"
Run Code Online (Sandbox Code Playgroud)
但我只想读取此值并使用它来命名我的APK文件.
android.applicationVariants.all { variant ->
variant.outputs.each { output ->
renameApk(variant, output)
}
}
def renameApk(variant, output) {
def apkPath = output.outputFile.parent
def baseName = project.archivesBaseName
baseName += "-${variant.buildType.name}"
// add version name and version code
baseName += "-v${variant.mergedFlavor.versionName}-${variant.mergedFlavor.versionCode}"
// if built on jenkins ci, add jenkins build number:
def buildNumber = System.getenv('BUILD_NUMBER')
if (buildNumber && buildNumber.size() > 0) {
baseName += "-b${buildNumber}"
}
// if the variant …Run Code Online (Sandbox Code Playgroud)