当前位置: 首页 > 知识库问答 >
问题:

Gradle resValue导致重复的字符串资源

罗波鸿
2023-03-14

我的Android清单文件按如下方式定义应用名称:

android:label="@string/app_name"

res/values/strings.xml中存在app_name的对应条目

现在,在我的版本中。gradle,我将beta版本的应用程序名称重新定义如下:

buildTypes {

    beta {
        applicationIdSuffix ".beta"
        debuggable true
        resValue "string", "app_name", "MyTest Beta"
    }
}

然而,当我组装包时,Gradle抱怨有重复的字符串资源。

我可以简单地从string.xml中删除app_name标记。然而,在这种情况下,Android Studio报告清单文件存在问题。

我该如何解决这个问题?当做

共有2个答案

萧心水
2023-03-14

我也遇到了同样的问题。我的解决方案是使用Manifest-占位符

<application
    android:label="${APP_NAME}"
    tools:replace="android:label">

在< code>defaultConfig闭包中,设置值

defaultConfig {
    addManifestPlaceholders([APP_NAME: "@string/app_name"])
}

改变你口味的价值。

buildTypes {
    beta {
        applicationIdSuffix ".beta"
        debuggable true
        addManifestPlaceholders([APP_NAME: "MyTest Beta"])
    }
}

缺点:

  • 硬编码应用名称。(这可能是也可能不是交易)

要解决这个缺点,您可以将< code > Manifest-placeholder 和< code>resValue结合起来,使用< code>resValue创建一个资源,并将< code>android:label更改为您资源。

华心思
2023-03-14

不应该搞砸“resValue”。您可以使用调试源集,它也允许您在调试中重新定义其他字符串。创建以下文件,并在其中重新定义“app_name”字符串。

src/debug/res/values/strings.xml

只需确保您的构建中没有类似以下内容。渐变的源集

debug.setRoot('build-types/debug')
 类似资料:
  • 当req.query.filter是一个没有空格的字符串时,比如'education'······这管用。当我试图找到一个有空格的列名时,比如'this havs空格',这个查询不起作用。我怎么才能修好这个?

  • 请帮帮我,我想不出为什么这个错误。就在一天前它起作用了。我理解it serches for和id ist是存在的,但id在XML中。它在方法中给出了错误: 这是他找不到的编辑文本的。你可以看到id在那里! 代码更新 我已经打扫过了,什么都没有。它的活动太大了,我添加的代码直到行的错误。所以我对所有的ID都使用了大写,它工作了两个星期,现在它给我的错误只是在ET上。

  • 问题 你想重复一个字符串。 解决方案 创建一个包含 n+1 个空元素的数组,然后用要重复的字符串作为连接字符将数组元素拼接到一起: # 创建包含10个foo的字符串 Array(11).join 'foo' # => "foofoofoofoofoofoofoofoofoofoo" 为字符串重复方法 你也可以在字符串的原型中为其创建方法。它十分简单: # 为所有的字符串添加重复方法,这会重复返回

  • 下面的C#表达式导致我的程序中出现编译器错误: 不应该可以像那样使用字符串插值吗?还是根本不可能做到这一点?

  • 问题内容: 我们给了一个字符串,例如,取“ TUOPPPPJHHTT”。我们希望找出哪个字符在字符串中连续出现次数最多以及发生多少次。在这种情况下,其P发生4次。 我尝试如下运行for循环 但是用这种方法,问题是它将计算所有字母的重复出现。 问题答案: 每次找到与上一个字符不同的字符,则表示运行(连续重复的字母)结束,因此您应记下当前运行的长度(即的值),然后重置计数。最后,您可以打印最大值。

  • 问题内容: 返回任意多次重复的字符串的最佳或最简洁的方法是什么? 以下是到目前为止我最好的拍摄: 问题答案: 给新读者的注意: 这个答案是旧的并且不是很实用它只是“聪明”,因为它使用Array的东西来完成String的工作。当我写“更少的过程”时,我绝对是指“更少的代码”,因为正如其他人在随后的回答中所指出的那样,它的表现像猪一样。因此,如果速度对您很重要,请不要使用它。 我直接将此函数放到Str