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

Android如何在主应用及应用模块中添加同一AAR文件

解决多模块Android应用中同一AAR重复引用导致的类重复问题

你遇到的编译错误核心原因是同一个AAR被多个模块独立引入,导致打包时出现重复的类定义。下面是两种靠谱的解决方式:

方案一:项目级统一管理AAR

这种方式适合多个模块都需要用到同一个AAR的场景,避免重复拷贝文件:

  1. 在项目根目录新建libs文件夹(如果没有的话),把myaar-1.1.0.aar移动到这个目录下。
  2. 打开根目录的build.gradle,在allprojects的repositories里添加本地flat仓库配置:
allprojects {
    repositories {
        google()
        mavenCentral()
        // 新增本地libs仓库
        flatDir {
            dirs rootProject.file("libs")
        }
    }
}
  1. 在MyApp和Module1的build.gradle中,统一添加如下依赖:
implementation(name: 'myaar-1.1.0', ext: 'aar')

方案二:通过主模块传递依赖

如果只有MyApp和Module1需要用这个AAR,可以让主模块把依赖传递给子模块:

  1. 修改MyApp的build.gradle,把原来的implementation改成api(api会让依赖向下传递):
// MyApp模块的build.gradle
api files('libs/myaar-1.1.0.aar')
  1. 删除Module1里的libs文件夹和对应的依赖代码,然后确保Module1已经依赖了MyApp:
// Module1模块的build.gradle
implementation project(':MyApp')

这样Module1就能自动使用MyApp引入的AAR,不会出现重复打包的问题。

关键注意事项

  • 绝对不要在多个模块中分别拷贝同一个AAR并单独添加implementation依赖,这会让每个模块都打包一份AAR,最终合并时必然出现重复类或Manifest组件冲突。
  • 如果AAR包含Activity这类Manifest注册的组件,重复引入还会导致Manifest合并失败,上述两种方案都能从根源避免这个问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 18:33:12