Gradle Kotlin DSL多模块项目共享依赖应用报错求助
问题解析与解决方案
这个错误是Kotlin DSL的语法严格性导致的——和Groovy的松散语法不同,Kotlin要求函数调用必须符合强类型语言的语法规范。
错误原因
你写的apply from ("../shared_dependencies.gradle.kts")是Groovy风格的写法,在Kotlin中:
apply是一个函数,调用时必须明确传递参数的方式,不能像Groovy那样省略参数名或者用松散的括号写法;- Kotlin编译器无法识别这种Groovy式的参数传递,所以提示“需要正确调用apply()函数”。
修复方法
直接改用Kotlin DSL的标准写法,用命名参数传递脚本路径:
apply(from = "../shared_dependencies.gradle.kts")
额外建议
如果你的项目是较新版本的Gradle(7.0+),更推荐使用预编译脚本插件来管理共享依赖,这种方式比apply from更类型安全、可维护性更高。比如把共享依赖脚本放在buildSrc/src/main/kotlin下,作为插件直接在模块中引用,但这属于进阶优化,先解决当前语法问题的话,上面的修改就足够了。
内容的提问来源于stack exchange,提问作者lelestacia
相关产品推荐
相关产品推荐

