10

更新到 Gradle 插件 3.0.0 beta 4 后,我们的构建失败并显示以下消息:

buildTypeMatching 已被移除。使用 buildTypes.<name>.fallbacks

我们的库有releasedebug buildTypes,但我们的应用程序有两个额外buildType的 s:'releaseWithLogs' 和 'debugMinified'。

我们的应用程序Gradle 文件的片段:

android {
    // ...
    buildTypeMatching 'releaseWithLogs', 'release'
    buildTypeMatching 'debugMinified', 'debug'

    buildTypes {
        debug {
            // ...
        }
        debugMinified {
            // ...
        }
        release {
            // ...
        }
        releaseWithLogs {
            // ...
        }
    }
}
4

1 回答 1

26

经过一番调查,发现了以下公告:Android Studio 3.0 Beta 4 is now available。在那里,它提到:

matchingFallbacks您现在使用(替换buildTypeMatchingproductFlavorMatching)为缺少的构建类型和风格提供后备。missingDimensionStrategy您还可以使用(替换flavorSelection)为缺少的维度提供默认选择和后备。

因此,我们之前的应用程序build.gradle 被转换为:

android {
    // ...
    //buildTypeMatching 'releaseWithLogs', 'release' // remove this
    //buildTypeMatching 'debugMinified', 'debug'     // remove this

    buildTypes {
        debug {
            // ...
        }
        debugMinified {
            // ...
            matchingFallbacks = ['debug']    // instead use this
        }
        release {
            // ...
        }
        releaseWithLogs {
            // ...
            matchingFallbacks = ['release']  // instead use this
        }
    }
}

请注意,我们不是说它也buildType releaseWithLogs将与release( buildTypeMatching 'releaseWithLogs', 'release') 匹配,而是在自身内部指定匹配buildTypedebugMinified匹配相同debug。另请注意,无需将其包含在releasedebug buildTypes 中,因为它们已经匹配。

于 2017-09-04T14:14:27.417 回答