Android Gradle禁用删除没有默认值的资源

时间:2018-10-30 16:43:45

标签: android android-gradle

由于升级到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

我们之所以需要这样做,是因为客户的翻译过程要求我们以默认语言以外的另一种语言来交付应用程序的测试版本。必须省略默认值,以便翻译人员可以轻松查看仍需要翻译的内容。

3 个答案:

答案 0 :(得分:0)

我不确定这是否可以解决您的问题。但是对我来说,将Android Studio从3.2升级到3.3后,我收到了几条警告,说

Android resource linking failed
Output:  warn: removing resource com.myproject:string/menu_item_copy 
without required default value.

为此,我更改了

compileSdkVersion 28

在应用程序级别build.gradle上。更新compiledSdkVersion后,这些警告错误消失了。如果适合您,请尝试此操作。

答案 1 :(得分:0)

我不知道发生此错误的原因,但在我的情况下,是因为我在其中的一个布局中有此错误的xml值

android:foreground="null"

存在xml值错误的可能性

答案 2 :(得分:0)

几周前,我们将构建工具的版本提高到28.0.3后,也遇到了类似的问题。而且我们还有一些限制,不允许将字符串放入默认值文件夹中。

因此,在经历了这个问题并进行谷歌搜索一周之后,我编写了gradle脚本来生成丢失的资源。该脚本仅生成字符串,样式,整数等(所有内容均来自“值”文件夹)。随意打开PR来生成其他资源类型:)

https://github.com/gerra/MissingResources

您所需的一切都在missing_res_generator.gradle文件中。