Crashlytics:ext.alwaysUpdateBuildId = false 即使在其他 productFlavors 中也错误地适用

Aph*_*hex 6 android gradle crashlytics android-gradle-plugin google-fabric

这是我productFlavors在 build.gradle 中的定义:

flavorDimensions "fasterbuild", "flavor"

productFlavors {
    slow {
        dimension "fasterbuild"
        // "Slow" uses the defaultConfig minSdkVersion, currently 16
    }

    fast {
        dimension "fasterbuild"

        //Use minSdk 21, mainly to avoid legacy multidex
        minSdkVersion 21

        //Crashlytics will generate a new build id for every build.
        //This can (and should) be disabled for debug builds with a single line:
        ext.alwaysUpdateBuildId = false
    }

    dev {
        dimension "flavor"
        ...
    }

    market {
        dimension "flavor"
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

这会产生以下 buildVariants:

构建变体

(我过滤掉了 fastMarket* 组合)。

问题

根据上述定义,我希望 Crashlytics 的alwaysUpdateBuildId设置仅在fast*变体中被禁用。

但是,在运行时assembleSlowDevDebug,我仍然看到以下内容:

Detected alwaysUpdateBuildId set to false while obfuscation is enabled. This may result in obfuscated stack traces in Crashlytics.

这里有更多的 gradle 输出:

Executing tasks: [:app:assembleSlowDevDebug]

Configuration on demand is an incubating feature.
NDK is missing a "platforms" directory.
If you are using NDK, verify the ndk.dir is set to a valid NDK directory.  It is currently set to /Users/aphex/Library/Android/sdk/ndk-bundle.
If you are not using NDK, unset the NDK variable from ANDROID_NDK_HOME or local.properties to remove this warning.

NDK is missing a "platforms" directory.
If you are using NDK, verify the ndk.dir is set to a valid NDK directory.  It is currently set to /Users/aphex/Library/Android/sdk/ndk-bundle.
If you are not using NDK, unset the NDK variable from ANDROID_NDK_HOME or local.properties to remove this warning.

Jack is disabled, but one of the plugins you are using supports Java 8 language features.
Jack is disabled, but one of the plugins you are using supports Java 8 language features.
Jack is disabled, but one of the plugins you are using supports Java 8 language features.
Jack is disabled, but one of the plugins you are using supports Java 8 language features.
Jack is disabled, but one of the plugins you are using supports Java 8 language features.
Jack is disabled, but one of the plugins you are using supports Java 8 language features.
The Task.leftShift(Closure) method has been deprecated and is scheduled to be removed in Gradle 5.0. Please use Task.doLast(Action) instead.
Detected alwaysUpdateBuildId set to false while obfuscation is enabled. This may result in obfuscated stack traces in Crashlytics.
Build cache is an incubating feature.
Using directory (/Users/aphex/.gradle/caches/build-cache-1) as local build cache, push is enabled.
:app:preBuild UP-TO-DATE
:app:preSlowDevDebugBuild UP-TO-DATE
...
Run Code Online (Sandbox Code Playgroud)

我通过ext.alwaysUpdateBuildId = falsefast变体中完全删除该行并重新运行assembleSlowDevDebug. 违规Detected alwaysUpdateBuildId set to false行消失。

根据我对构建变体和产品风格的理解,这没有任何意义。这是 Gradle 错误、Crashlytics/Fabric 问题,还是两者兼而有之?我正在使用 Gradle 3.5 和 Android 工具 gradle 插件 2.3.3。