自从升级到 Android Gradle Plugin 3.2 以后,没有必需默认值的资源会被移除,导致构建失败。
Execution failed for task ':app:processDebugResources'.
> Android resource linking failed
warn: removing resource my.package.name:string/my_string_resource without required default value.
/path/to/layout.xml: AAPT: error: resource string/my_string_resource (aka my.package.name:string/my_string_resource) not found
这能被禁用吗?我目前使用的是最新版的Android Gradle插件: 3.4.0
我们需要这个功能,因为我们客户的翻译流程要求我们提供测试构建的应用程序以另一种语言而不是默认语言。必须省略默认值,以便翻译人员可以轻松地查看仍需要翻译的内容。
my_string_resource
定义了不同的值?如果没有,或者针对您特定的目的,如果您不想要其他翻译,请尝试在字符串声明中使用tools:ignore="ExtraTranslation"
属性,然后尝试运行构建。 - Abhishektools:ignore="ExtraTranslation"
是无法帮助的,因为它只适用于 Lint 检查。如果您没有翻译默认语言中的某个字符串并在布局文件中使用它,则不会进行检查。由于构建步骤processDebugResources
会将其删除,导致构建失败。 - Ranil Wijeyratne