Android Studio在多Module中依赖aar的配置问题

背景:
本想添加一个aar到基础module中,结果引用该module的库全部报


图片.png

现在来总结一下方法:
一、不存在module依赖的情况
1)添加arr到app module -> libs目录
2) 在build.gradle中配置 (注:repositories和android、dependencies处在同一级别的目录下。如不添加该配置,同步依赖会失败,提示 Failed to resolve)

repositories {
    flatDir {
        dirs 'libs'
    }
}
  1. implementation(name: 'xxx', ext: 'aar')

二、当存在其它module依赖aar文件时
注:当项目存在多个module时,如果想在某个library module中依赖aar文件时,那么其它所有直接或间接依赖该library module的module中都应声明build.gradle文件中进行统一配置声明。否则会同步依赖失败,提示 Failed to resolve

1、方法一
1)上面步骤不变
2)在其它所有直接或间接依赖该library module的module中配置build.gradle文件如下:

repositories {
    flatDir {
        dirs '../xxx/libs','libs'  //将xxx替换为引入aar文件的module名
    }
}

2、方法二(简单粗爆)
1)在project的build.gradle文件中统一配置如下:

allprojects {
    repositories 
        flatDir {
            dirs project(':xxx').file('libs')  //将xxx替换为引入aar文件的module名
        }
    }
}

2)在依赖aar文件的library module下的build.gradle文件中添加依赖如下:

implementation(name: 'xxx', ext: 'aar')  //只允许在依赖aar文件的module下调用该aar文件
或
api (name:'xxx',ext:'aar')  //在其他依赖该library module的module中,也可调用该library module所依赖的aar文件
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容