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

Android库依赖配置:如何避免主项目重复声明依赖?

解决Android库依赖不重复引入主项目的问题

这个问题我之前也碰到过,核心是要搞清楚Gradle中api和implementation的依赖传递逻辑,下面给你一步步解决的方案:

1. 正确配置库模块的依赖声明

在你的库模块的build.gradle文件中,把所有需要传递给主项目的依赖从implementation改成api。api关键字的作用就是让依赖能够向上传递给引用该库的上层模块(也就是你的主项目),而implementation只会把依赖保留在库内部,上层模块无法访问。

修改后的库依赖配置应该是这样:

dependencies {
    // 用api声明需要传递给主项目的依赖
    api 'com.google.android.gms:play-services-safetynet:17.0.0'
    api 'com.squareup.retrofit2:retrofit:2.5.0'
    api 'com.squareup.retrofit2:converter-gson:2.5.0'
    api 'com.squareup.okhttp3:logging-interceptor:3.12.2'

    // 如果有库内部自己使用、不需要传递给主项目的依赖,依然用implementation
    implementation 'androidx.core:core-ktx:1.9.0'
}

2. 主项目只需要引入你的库模块

在主项目的build.gradle文件中,删除所有重复的依赖声明,只需要添加对你的库模块的引用即可:

dependencies {
    // 引入你的库模块,替换成实际的模块名称
    implementation project(':your-library-module-name')

    // 主项目自身的其他依赖正常保留
    implementation 'androidx.appcompat:appcompat:1.6.1'
}

3. 排查可能的无效原因

如果按照上面配置后还是有重复依赖的问题,检查以下几点:

  • 确认库模块中所有需要传递的依赖都改成了api,没有遗漏
  • 执行Gradle同步操作(点击Android Studio工具栏的"Sync Project with Gradle Files"按钮),必要时可以通过File > Invalidate Caches / Restart清除缓存后重新同步
  • 检查主项目的build.gradle中是否还有残留的重复依赖声明,务必全部删除
  • 如果你的库是远程maven库(不是本地模块),要确保发布库时正确包含了依赖传递信息(本地模块不需要额外操作)

完整示例

库模块build.gradle(精简版)

plugins {
    id 'com.android.library'
}

android {
    compileSdk 33
    defaultConfig {
        minSdk 21
        targetSdk 33
    }
}

dependencies {
    api 'com.google.android.gms:play-services-safetynet:17.0.0'
    api 'com.squareup.retrofit2:retrofit:2.5.0'
    api 'com.squareup.retrofit2:converter-gson:2.5.0'
    api 'com.squareup.okhttp3:logging-interceptor:3.12.2'
    
    implementation 'androidx.core:core-ktx:1.9.0'
}

主项目build.gradle(精简版)

plugins {
    id 'com.android.application'
}

android {
    compileSdk 33
    defaultConfig {
        applicationId "com.your.app.id"
        minSdk 21
        targetSdk 33
    }
}

dependencies {
    implementation project(':your-library-module-name')
    implementation 'androidx.appcompat:appcompat:1.6.1'
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 06:30:01