Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在android清单中压缩字符串资源和构建变量_Android_Android Gradle Plugin_Concatenation_Build.gradle_Android Manifest - Fatal编程技术网

如何在android清单中压缩字符串资源和构建变量

如何在android清单中压缩字符串资源和构建变量,android,android-gradle-plugin,concatenation,build.gradle,android-manifest,Android,Android Gradle Plugin,Concatenation,Build.gradle,Android Manifest,前兆:我想本地化应用程序名称(使用字符串资源)并同时从gradle文件中添加构建类型后缀(“DEBUG”) 这里我试图连接字符串资源“app_name”和gradle变量“AppNameSuffix” 预期的应用程序名称: 对于产品风格“all”-“我的应用程序调试” 对于产品风格“中国”“-“我的中文应用程序调试” 后续构建类型后缀为“RELEASE”和“CANARY” build.gradle: 显示: 在gradle文件中,使用小写字母,以便资源名称有效: buildTypes

前兆:我想本地化应用程序名称(使用字符串资源)
并同时从gradle文件中添加构建类型后缀(“DEBUG”)

这里我试图连接字符串资源“app_name”和gradle变量“AppNameSuffix”

预期的应用程序名称:
对于产品风格“all”-“我的应用程序调试”
对于产品风格“中国”“-“我的中文应用程序调试”
后续构建类型后缀为“RELEASE”和“CANARY”


build.gradle:
显示:


  • 在gradle文件中,使用小写字母,以便资源名称有效:

    buildTypes {
        debug {
            manifestPlaceholders = [AppNameSuffix: "_debug"]
            ...
        }
        release{
            manifestPlaceholders = [AppNameSuffix: "_release"]
            ...
        }
        canary{
            manifestPlaceholders = [AppNameSuffix: "_canary"]
        }
    }
    
    修改您的清单:有括号要删除,如果还没有工具:替换要添加:

    <application
        ...
        android:label="@string/app_name${AppNameSuffix}"
        tools:replace="android:label"
        ...
    </application>
    
    
    
    <string name="app_name">My application %s</string>
    
    <string name="app_name">My Chinese application %s</string>
    
    buildTypes {
        debug {
            manifestPlaceholders = [AppNameSuffix: "_debug"]
            ...
        }
        release{
            manifestPlaceholders = [AppNameSuffix: "_release"]
            ...
        }
        canary{
            manifestPlaceholders = [AppNameSuffix: "_canary"]
        }
    }
    
    <application
        ...
        android:label="@string/app_name${AppNameSuffix}"
        tools:replace="android:label"
        ...
    </application>
    
    <string name="app_name">My application</string>
    <string name="app_name_debug">My application DEBUG</string>
    <string name="app_name_release">My application RELEASE</string>
    <string name="app_name_canary">My application CANARY</string>