类似的问题已经回答过好几次了,我确实检查了很多。这是不同的,请继续阅读。
我strings.xml用多个格式参数定义了(大量)数量的字符串。例如:
<string name="my_fmt_string">%s and also %s</string>
Run Code Online (Sandbox Code Playgroud)
这会导致 AAPT 错误
AAPT: warn: multiple substitutions specified in non-positional format; did you mean to add the formatted="false" attribute?
Run Code Online (Sandbox Code Playgroud)
正如我上面所说,在 SO 中已经提出并回答了许多关于此的问题。这些答案是指使用位置语法 ( %1$s) 和formatted=false.
问题是,这些问题可以追溯到 2010 年,而我的应用程序已经有 4 年历史,并且在我今天尝试之前编译得非常完美。没有最近的变化指向一个问题,肯定不是自从我上次编译这个 - 3 天前,星期五。
我的应用程序中有很多很多格式化的字符串。修复每个案例是乏味的,甚至是困难的(复杂的格式%02d呢?如果混合使用String.format和context.getString(id, ...args)呢?)。
有什么变化?为什么会突然失效?
好吧。在这里。
我回到 git 历史,直到找到一个有效的构建。当时所有的 AAPT 消息都是警告。
当我在其他地方引入语法错误时,旧警告被报告为 Android Studio 用户界面中的错误:未转义的撇号('而不是\')
无休止的错误级联使得这很难被发现,因为突然在构建日志中报告了数十个字符串作为失败。一一走,我发现了一个不同的。
所以,如果你正在阅读这篇文章:忽略这些消息,找到另一个错误。
| 归档时间: |
|
| 查看次数: |
649 次 |
| 最近记录: |