什么意思是gradle属性是“实验性和不支持的”?

18

为了解决问题或更新依赖项,我多次需要启用给定的Gradle选项设置

  • 例如,Robolectric 4.0迁移指南中写道:

    将以下内容添加到您的gradle.properties文件中:

    android.enableUnitTestBinaryResources=true

  • 同样地,为了调试数据绑定编译错误,我按照Gradle构建日志中的建议执行了以下操作:

    Gradle可能会禁用增量编译[...]。
    请考虑在gradle.properties文件中设置实验性功能标志android.enableSeparateAnnotationProcessing=true,以在单独的任务中运行注释处理并使编译变得增量。


从这两个示例中,我可以看出作者(Robolectric/gradle维护人员)相信启用此选项将对每种情况产生积极影响。
但是,在这两种情况下,我都会在构建输出中收到以下警告:

警告:选项设置'android.enableUnitTestBinaryResources=true'是实验性的和不受支持的。 当前默认值为'false'。

警告:选项设置'android.enableSeparateAnnotationProcessing=true'是实验性的和不受支持的。 当前默认值为'false'。

我在gradle.properties中已经有几个月使用了标志android.databinding.enableV2=true。为了查看它的处理方式,我试图将其设置为false,结果出现了相同的The option setting 'android.databinding.enableV2=false' is experimental and unsupported.警告(这似乎暗示着unsupported设置会被忽略)。

  • 我知道这些是实验性的功能标志,但是unsupported是什么意思?这是否意味着如果出现问题,我不应该期望得到支持?还是说它们将被忽略

  • 如果意味着它们将被忽略,那么这些属性应该如何使用?


1
这里的“已知问题”中引用:Android Gradle插件可能会报告以下警告,可以安全地忽略:WARNING: The option setting 'android.enableUnitTestBinaryResources=true' is experimental and unsupported.. Android Gradle Plugin 3.3将解决此问题。 - zeekhuge
3
对我而言,迁移至androidX后完全消除了那些警告! - zeekhuge
@ZeekHuge非常感谢你的评论。我已经阅读了这段文字,它似乎暗示这个选项被忽略了,但是对于所有的“实验性和不支持的”选项设置都是这样吗? - PLNech
1个回答

1

这是新的、实验性的 AGP 功能的默认警告。一般来说,如果您对它们提交错误报告,可能会被考虑或不被考虑。这也意味着,它们随时可能被撤回(或在将来的版本中);不能依赖它们。例如,它可能会警告这样一个功能开关不再受支持,并且没有效果。


谢谢您提供这些详细信息,尽管它们并没有回答我的问题:这些属性会影响到什么吗?为什么在我的测试中这些选项似乎总是被忽略了呢?您提到了它们是“实验性的”,但它们也被描述为“不受支持的”。 - PLNech
1
这些警告并不影响功能,但最好不要依赖它们(除非必须),因为它们可能会被添加为默认功能或者可能会再次消失;换句话说,这是一种公开的测试版。在功能方面,“unsupported”一词具有两个不同的含义,取决于上下文。在本例中:不被支持覆盖。 - Martin Zeitler

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接