Android 集成含多product flavor的library时构建变体不匹配问题求助
报错原因
你的App模块未声明与Library一致的flavor维度,Android Gradle Plugin无法自动匹配两个模块的构建变体,默认会优先选择Library的首个flavor变体,手动修改Library变体后就会出现匹配冲突报错,报错截图如下:
解决方案
方案一:App模块对齐Library的flavor配置(推荐,可直接在Build Variants面板一键切换)
在你LibraryTesting项目的app模块build.gradle文件的android代码块中,添加和mylibrary完全一致的flavor配置:
flavorDimensions "dev" productFlavors { virtual { dimension "dev" } nonvirtual { dimension "dev" } }
配置完成后同步Gradle即可,后续你只需要在Build Variants面板选择App对应的变体(比如nonvirtualDebug/virtualDebug),系统会自动匹配mylibrary对应版本的变体,无需手动修改Library的变体选项。
方案二:指定flavor匹配规则(适合App不需要配置多flavor的场景)
如果你不想在App模块中声明额外的productFlavor,可以在app模块build.gradle的defaultConfig代码块中添加匹配规则,需要切换Library变体时修改规则后同步Gradle即可:
defaultConfig { // 第一个参数为维度名,第二个参数为默认匹配的flavor名称 missingDimensionStrategy 'dev', 'virtual' // 需要切换nonvirtual变体时改为下面的配置 // missingDimensionStrategy 'dev', 'nonvirtual' }
内容的提问来源于stack exchange,提问作者surendra
相关产品推荐
相关产品推荐

