错误:以非位置格式指定多个替换;您的意思是添加格式化= "false"属性吗?



我有一个Android应用程序,它抛出BUILD过程以下错误:

/

home/Ralf/Projekte/University/android-sampleapp/sampleapp/build/intermediates/bundles/debug/res/values-de/values-de.xml 错误:(88, 5) 在非位置中指定的多个替换 格式;您的意思是添加 formatted="false" 属性吗? 错误:(88, 5) 意外的结束标记字符串

/home/Ralf/Projekte/University/android-sampleapp/sampleapp/build/intermediates/bundles/debug/res/values/values.xml 错误:(106, 5) 在非位置中指定的多个替换 格式;您的意思是添加 formatted="false" 属性吗? 错误:(106, 5) 意外的结束标记字符串

/home/Ralf/Projekte/University/android-sampleapp/demo/build/intermediates/res/merged/debug/values-de/values-de.xml 错误:(131) 以非位置格式指定多个替换; 您的意思是添加 formatted="false" 属性吗?错误:(131) 意外的结束标记字符串

/home/Ralf/Projekte/University/android-sampleapp/demo/build/intermediates/res/merged/debug/values/values.xml 错误:(1258) 在非位置中指定的多个替换 格式;您的意思是添加 formatted="false" 属性吗? 错误:(1258) 意外的结束标记字符串 错误:java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException:执行时出错 进程/opt/sdk/build-tools/26.0.2/aapt 带参数 {package -f --no-crunch -I/opt/sdk/platforms/android-27/android.jar -M/home/Ralf/Projekte/University/android-sampleapp/demo/build/intermediates/manifests/full/debug/AndroidManifest.xml -S/home/Ralf/Projekte/University/android-sampleapp/demo/build/intermediates/res/merged/debug -m -J/home/Ralf/Projekte/University/android-sampleapp/demo/build/generated/source/r/debug -F/home/Ralf/Projekte/University/android-sampleapp/demo/build/intermediates/res/debug/resources-debug.ap_ -D/home/Ralf/Projekte/University/android-sampleapp/demo/build/intermediates/multi-dex/debug/manifest_keep.txt --custom-package com.ralfi.demo -0 apk --output-text-symbol/home/Ralf/Projekte/University/android-sampleapp/demo/build/intermediates/symbols/debug --no-version-vectors} Error:com.android.ide.common.process.ProcessException: Error while 使用参数执行进程/opt/SDK/build-tools/26.0.2/aapt {package -f --no-crunch -I/opt/sdk/platforms/android-27/android.jar -M/home/Ralf/Projekte/University/android-sampleapp/demo/build/intermediates/manifests/full/debug/AndroidManifest.xml -S/home/Ralf/Projekte/University/android-sampleapp/demo/build/intermediates/res/merged/debug -m -J/home/Ralf/Projekte/University/android-sampleapp/demo/build/generated/source/r/debug -F/home/Ralf/Projekte/University/android-sampleapp/demo/build/intermediates/res/debug/resources-debug.ap_ -D/home/Ralf/Projekte/University/android-sampleapp/demo/build/intermediates/multi-dex/debug/manifest_keep.txt --custom-package com.ralfi.demo -0 apk --output-text-symbol/home/Ralf/Projekte/University/android-sampleapp/demo/build/intermediates/symbols/debug --no-version-vectors} Error:org.gradle.process.internal.ExecException: process 'command '/opt/sdk/build-tools/26.0.2/aapt'' 完成 非零退出值 1

当我单击字符串资源中的错误时,它指向: 隐藏 %02d:%02d 分钟

但是我需要这些资源的翻译,为什么我会得到这个?

这是因为字符串资源具有多个%s或类似内容。为避免这种情况,您必须像这样标识每个:%1$s.例:

<string name="full_name">First: %1$s - Last: %2$s</string>

其中%1$s是你的第一个替代品,%2$s是你的第二个替代品。

如果您不想执行任何替换,只需将属性添加formatted="false"。例:

<string name="your_string" formatted="false">Level: 100%</string>

此错误的另一种可能性是以前是警告;这些错误中可能隐藏了不同的错误,因此您需要查找并修复它。存在重复的资源值错误,不知何故,这为我触发了许多"以非位置格式指定的多个替换",查找并修复重复值错误解决了构建问题。

此错误可能还有其他问题。例如,对我来说,我在字符串中添加的单引号 (') 导致了这个问题。使用这个带有反斜杠的单引号帮助我解决了错误。如果您在更改某些内容后收到此错误,请检查这些更改。

替换用百分号标记,因此如果百分号未正确替换,则任何百分号都可能导致此错误。

百分号是无效的 XML 字符,除非它正确用于此文件格式中的替换。

键入单词百分比,而不是使用符号。

相关内容

最新更新