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

使用android-maven-gradle-plugin时AAR依赖错误求助

解决多模块依赖中Common代码重复的问题

我之前在维护多模块Android项目时也碰到过类似的困扰,结合你的客户端-服务端模块结构,给你几个针对性的解决方案:

方案1:将Common模块改为纯Java/Kotlin库(推荐)

如果你的Common模块只是工具类、Bean这些不依赖Android SDK的代码,完全没必要做成AAR模块——AAR是Android专属库,包含资源、Manifest等额外内容,反而会增加依赖复杂度。

把Common改成纯Java/Kotlin库的步骤很简单:

  • 在Common模块的build.gradle(或build.gradle.kts)中,替换插件:
    // 替换原来的com.android.library插件
    plugins {
        id 'java-library'
        // 如果用Kotlin就加这个
        id 'org.jetbrains.kotlin.jvm'
    }
    
  • 然后在App和SDK模块中直接依赖:
    implementation project(':common')
    

这种方式下,Common的代码会被直接集成到App和SDK中,既不会有AAR依赖的传递问题,也能保证代码唯一,修改一次就能同步到所有依赖模块。

方案2:保持Common为AAR,优化依赖传递

如果Common模块必须是AAR(比如包含Android资源、自定义View等),那重点要解决依赖传递性的问题:

  • 在SDK模块中依赖Common时,使用api而非implementation:
    // 这样SDK的依赖者(也就是App模块)能自动获取Common的依赖
    api project(':common')
    
  • 避免在App模块中直接依赖Common,而是通过SDK间接引入——这样所有对Common的修改只需要维护一个依赖入口,不会出现重复代码的问题。
  • 如果遇到依赖冲突(比如多个模块引入了相同类),可以在项目根目录的build.gradle中添加版本统一策略:
    allprojects {
        repositories {
            // ... 你的仓库配置
        }
        configurations.all {
            resolutionStrategy {
                // 强制统一Common模块的版本
                force project(':common')
            }
        }
    }
    

方案3:通过本地/远程仓库管理依赖

如果你的模块需要独立发布(比如SDK要给外部使用),可以用Maven Publish插件把Common和SDK发布到本地仓库或远程仓库:

  1. 在Common和SDK模块中配置Maven Publish:
    plugins {
        id 'maven-publish'
    }
    
    publishing {
        publications {
            release(MavenPublication) {
                from components.release
                groupId 'com.yourcompany'
                artifactId 'common' // SDK模块这里改成sdk
                version '1.0.0'
            }
        }
        repositories {
            mavenLocal() // 本地仓库,也可以配置远程仓库
        }
    }
    
  2. 先发布Common模块,再发布SDK模块(SDK依赖发布后的Common)
  3. App模块直接依赖SDK:
    implementation 'com.yourcompany:sdk:1.0.0'
    

这种方式能让依赖关系更清晰,也能避免本地模块依赖的潜在问题。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:35:40