Several times, to solve an issue or update dependencies, I had to enable a given gradle option setting.
For example, Robolectric 4.0 Migration guide states:
Put this in your gradle.properties:
android.enableUnitTestBinaryResources=true
Likewise, to debug a databinding compile error I followed the advice printed in Gradle's build log:
Gradle may disable incremental compilation [...].
Consider setting the experimental feature flagandroid.enableSeparateAnnotationProcessing=true
in the gradle.properties file to run annotation processing in a separate task and make compilation incremental.
From both examples, I get that the authors (Robolectric/gradle maintainers) are confident that enabling this option will have a positive impact on each situation.
However, in both cases I get this warning in my build output:
WARNING: The option setting 'android.enableUnitTestBinaryResources=true' is experimental and unsupported. The current default is 'false'.
WARNING: The option setting 'android.enableSeparateAnnotationProcessing=true' is experimental and unsupported. The current default is 'false'.
I had in my gradle.properties
since a few months the flag android.databinding.enableV2=true
. To see how it's handled, I tried to put it to false
, which brought the same The option setting 'android.databinding.enableV2=false' is experimental and unsupported.
warning (which seems to suggest an unsupported
setting is ignored).
I understand these are experimental feature flags. But what about unsupported? Does this mean I should not expect support if anything goes wrong, or does it mean they will be ignored?
If it means they are ignored, how are those properties meant to be used?
Android Gradle Plugin may report the following warning, which may be safely ignored: WARNING: The option setting 'android.enableUnitTestBinaryResources=true' is experimental and unsupported.. Android Gradle Plugin 3.3 will resolve this issue.
– Fruitful