Gradle 6.4.1下build.gradle转kts时,风味依赖配置报错求助
解决Gradle KTS中风味依赖的配置问题
嗨,我刚好遇过类似的Groovy转KTS的坑,你的问题出在手动创建配置以及依赖声明的方式不对——Android Gradle插件会自动为你定义的每个product flavor生成对应的依赖配置,完全不需要手动用configurations.creating来创建。
正确的配置方式
你已经正确完成了productFlavors的定义,接下来只需要在dependencies块里使用插件自动生成的${flavorName}Implementation配置来声明依赖即可,这里有两种常用的写法:
写法1:简洁的字符串形式(指定aar类型)
dependencies { // 直接用自动生成的风味依赖配置,@aar明确依赖类型 "nameofflavourImplementation"("some.dependency:1.0.0@aar") }
写法2:结构化参数写法(拆分group/name/version)
如果不想拼接字符串,也可以用结构化参数来清晰声明依赖:
dependencies { "nameofflavourImplementation"( group = "some.dependency", name = "library-module-name", version = "1.0.0", ext = "aar" ) }
为什么你的原有写法会报错?
- 无需手动创建配置:当你在
productFlavors里调用create("nameofflavour")时,Android插件会自动生成nameofflavourImplementation、nameofflavourApi、nameofflavourCompileOnly等一系列和该风味绑定的配置,手动创建反而会和插件生成的配置冲突,导致编译不识别。 - 依赖声明位置错误:Gradle的依赖必须在
dependencies块内声明,直接调用配置对象的方法不是标准的依赖声明方式,自然会被判定为无效。
额外小提示
如果需要给风味添加其他类型的依赖(比如编译期依赖、运行时依赖),同样可以用nameofflavourCompileOnly、nameofflavourRuntimeOnly这类自动生成的配置名,写法和上面完全一致。
内容的提问来源于stack exchange,提问作者Kitesurfer
相关产品推荐
相关产品推荐

