You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kotlin DSL中如何让Library传递注解库依赖给主应用?

解决方案

问题根源

你在Library中用implementation引入注解库,这个配置的依赖仅对Library自身编译可见,不会传递给依赖它的Sample App,导致Sample App编译时找不到注解类的引用。

具体解决步骤

  1. 修改注解库的依赖配置
    将Library中注解库的implementation替换为api,这样依赖会自动传递给上层模块。修改Library的Gradle DSL代码:

    api(libs.annotations) // 替换原有的implementation(libs.annotations)
    kapt(libs.annotations) // 保留该行,用于Library自身的注解处理
    

    api配置会让依赖对外暴露,当Sample App依赖你的Library时,会自动引入注解库,无需单独添加注解库依赖。编译AAR上传到Artifactory后,对应的pom文件会包含这个传递依赖,Sample App拉取AAR时会自动解析并下载注解库。

  2. 注解处理器的补充说明
    如果Sample App需要自己使用注解处理器生成代码(而非仅用Library生成好的功能),仅靠Library的kapt配置不够——kapt依赖不会自动传递。这种情况下,你得在Sample App的Gradle配置里手动加kapt(libs.annotations)。但要是Sample App只是用Library提供的注解类(不需要自己触发代码生成),那只做第一步就足够解决“unresolved reference”错误。

内容的提问来源于stack exchange,提问作者Neglected Sanity

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 19:14:59