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

PLN*_*ech 17 android gradle android-databinding gradle-properties

有几次,为了解决问题或更新依赖项,我必须启用给定的gradle选项设置.

  • 例如,Robolectric 4.0迁移指南指出:

    把它放在你的gradle.properties中:

    android.enableUnitTestBinaryResources=true

  • 同样,为了调试数据绑定编译错误,我遵循Gradle的构建日志中打印的建议:

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


从这两个例子中,我得知作者(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设置被忽略).

  • 我知道这些是实验性功能标志.但是不支持呢?这是否意味着如果出现任何问题我不应该期待支持,或者这是否意味着他们会被忽略

  • 如果这意味着它们被忽略了,那么这些属性是如何被使用的呢?

Mar*_*ler 1

这是新的实验性 AGP 功能的默认警告。这通常意味着,如果您向他们提交错误,它可能会也可能不会被考虑。这也意味着,它们最终可能会在任何给定时间(或未来版本)被撤回;这是没有什么可以依靠的。例如,它可能会警告不再支持此类功能开关并且它没有任何效果。