更新到Gradle插件3.0.0 beta 4后,我们的构建失败并显示以下消息:
buildTypeMatching has been removed. Use buildTypes.<name>.fallbacks
我们的库有发布和调试buildTypes,但我们的app有两个额外的buildTypes:’releaseWithLogs’和’debugMinified’.
我们的应用程序Gradle文件的片段:
android {
// ...
buildTypeMatching 'releaseWithLogs', 'release'
buildTypeMatching 'debugMinified', 'debug'
buildTypes {
debug {
// ...
}
debugMinified {
// ...
}
release {
// ...
}
releaseWithLogs {
// ...
}
}
}
解决方法:
经过一番调查后,发现了以下公告:Android Studio 3.0 Beta 4 is now available.在那里,它提到:
You Now provide fallbacks for missing build types and flavors using
matchingFallbacks
(which replacesbuildTypeMatching
andproductFlavorMatching
). You also provide the default selection and fallbacks for missing dimensions usingmissingDimensionStrategy
(which replacesflavorSelection
).
所以,我们以前的应用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’)匹配,而是指定buildType本身内部的匹配.对于debugMinified匹配调试也是如此.另请注意,在发布和调试buildTypes中不需要包含它,因为它们已经匹配.