Error: Multiple substitutions specified in non-positional format; did you mean to add the formatted="false" attribute?
Error: Multiple substitutions specified in non-positional format; did you mean to add the formatted="false" attribute?
我有一个 Android 应用程序,它在构建过程中抛出以下错误:
/home/Ralf/Projekte/University/android-sampleapp/sampleapp/build/intermediates/bundles/debug/res/values-de/values-de.xml
Error:(88, 5) Multiple substitutions specified in non-positional
format; did you mean to add the formatted="false" attribute?
Error:(88, 5) Unexpected end tag string
/home/Ralf/Projekte/University/android-sampleapp/sampleapp/build/intermediates/bundles/debug/res/values/values.xml
Error:(106, 5) Multiple substitutions specified in non-positional
format; did you mean to add the formatted="false" attribute?
Error:(106, 5) Unexpected end tag string
/home/Ralf/Projekte/University/android-sampleapp/demo/build/intermediates/res/merged/debug/values-de/values-de.xml
Error:(131) Multiple substitutions specified in non-positional format;
did you mean to add the formatted="false" attribute? Error:(131)
Unexpected end tag string
/home/Ralf/Projekte/University/android-sampleapp/demo/build/intermediates/res/merged/debug/values/values.xml Error:(1258) Multiple substitutions specified in non-positional
format; did you mean to add the formatted="false" attribute?
Error:(1258) Unexpected end tag string
Error:java.util.concurrent.ExecutionException:
com.android.ide.common.process.ProcessException: Error while executing
process /opt/sdk/build-tools/26.0.2/aapt with arguments {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-symbols /home/Ralf/Projekte/University/android-sampleapp/demo/build/intermediates/symbols/debug
--no-version-vectors} Error:com.android.ide.common.process.ProcessException: Error while
executing process /opt/sdk/build-tools/26.0.2/aapt with arguments
{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-symbols /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'' finished with
non-zero exit value 1
当我点击字符串资源中的错误时,它指向:
隐藏 %02d:%02d 分钟
但是我需要这些资源的翻译,为什么我会得到这个?
那是因为你的String资源有多个%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>
这个错误的另一种可能性是之前是警告;这些错误中可能隐藏着不同的错误,因此您需要找到并修复它。有一个重复的资源值错误,不知何故触发了很多 'Multiple substitutions specified in non-positional format' 我发现并修复了重复的值错误解决了构建问题。
此错误可能还有其他问题。例如,对我来说,我在字符串中添加的单引号 (') 导致出现此问题。使用这个带反斜杠的单引号帮助我解决了这个错误。如果您在更改某些内容后出现此错误,请检查这些更改。
我有一个 Android 应用程序,它在构建过程中抛出以下错误:
/home/Ralf/Projekte/University/android-sampleapp/sampleapp/build/intermediates/bundles/debug/res/values-de/values-de.xml Error:(88, 5) Multiple substitutions specified in non-positional format; did you mean to add the formatted="false" attribute? Error:(88, 5) Unexpected end tag string
/home/Ralf/Projekte/University/android-sampleapp/sampleapp/build/intermediates/bundles/debug/res/values/values.xml Error:(106, 5) Multiple substitutions specified in non-positional format; did you mean to add the formatted="false" attribute? Error:(106, 5) Unexpected end tag string
/home/Ralf/Projekte/University/android-sampleapp/demo/build/intermediates/res/merged/debug/values-de/values-de.xml Error:(131) Multiple substitutions specified in non-positional format; did you mean to add the formatted="false" attribute? Error:(131) Unexpected end tag string
/home/Ralf/Projekte/University/android-sampleapp/demo/build/intermediates/res/merged/debug/values/values.xml Error:(1258) Multiple substitutions specified in non-positional format; did you mean to add the formatted="false" attribute? Error:(1258) Unexpected end tag string Error:java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: Error while executing process /opt/sdk/build-tools/26.0.2/aapt with arguments {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-symbols /home/Ralf/Projekte/University/android-sampleapp/demo/build/intermediates/symbols/debug --no-version-vectors} Error:com.android.ide.common.process.ProcessException: Error while executing process /opt/sdk/build-tools/26.0.2/aapt with arguments {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-symbols /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'' finished with non-zero exit value 1
当我点击字符串资源中的错误时,它指向: 隐藏 %02d:%02d 分钟
但是我需要这些资源的翻译,为什么我会得到这个?
那是因为你的String资源有多个%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>
这个错误的另一种可能性是之前是警告;这些错误中可能隐藏着不同的错误,因此您需要找到并修复它。有一个重复的资源值错误,不知何故触发了很多 'Multiple substitutions specified in non-positional format' 我发现并修复了重复的值错误解决了构建问题。
此错误可能还有其他问题。例如,对我来说,我在字符串中添加的单引号 (') 导致出现此问题。使用这个带反斜杠的单引号帮助我解决了这个错误。如果您在更改某些内容后出现此错误,请检查这些更改。