当字符串资源多个时,如何强制使用?

问题描述 投票:0回答:1

我有一个名为 app_name 和值 My App Name 的字符串资源。我只有一个 strings.xml 文件,因此我的应用程序只有一种语言和一个默认的 strings.xml 文件。当我导入一个库,该库具有多个具有相同名称(app_name)和其他值(库名称)的资源字符串时,会出现多种语言(例如西班牙语和法语)的问题。当用户在配置中选择的语言是法语或西班牙语时,这会导致我使用 app_name 资源的所有位置返回 Library Name 而不是 My App Name

显然,我可以更改资源的名称,但我更喜欢保留该名称并找到一种方法来避免这种行为。有没有办法强制Android使用字符串资源,即使有其他资源?

android android-resources
1个回答
0
投票

您可能正在寻找 resConfigs gradle 属性。

Gradle 资源收缩器仅删除应用程序代码未引用的资源,这意味着它不会删除不同设备配置的替代资源。 如有必要,您可以使用 Android Gradle 插件的 resConfigs 属性来删除您的应用不需要的替代资源文件。

例如,如果您使用的库包含语言资源...,那么您的应用程序将包含这些库中消息的所有翻译语言字符串,无论应用程序的其余部分是否翻译为相同的语言。 如果您只想保留应用程序正式支持的语言,您可以使用 resConfig 属性指定这些语言。任何未指定语言的资源都将被删除。

示例 Gradle:

defaultConfig {
    // Assuming your one strings file is English, keep that, remove all other languages
    resConfigs "en"
}
© www.soinside.com 2019 - 2024. All rights reserved.