Android 共用 aar包 引用方案

假设android Library引用结构为

TopLibModule
|
SecondLibModule
|
MainAppModule

然后项目需要引用第三方(或者可以把一些相对固定的
Library编译为aar来优化编译)aar文件;

通常给相应的 Module 增加 aar引用就好了,
比如 TopLibModule 引用 one.aar

这时候给 给 TopLibModule 的build.gradle 增加

    repositories {
        flatDir {
            dirs '../libs';
        }
    }

    dependencies {
        compile(name:'one', ext:'aar')
    }

这里的 “../libs” 是相对的,SecondLibModule 和
MainAppModule 中显然没有 相应的 one.aar 所以
报错。

解决方案一:为one.aar 新建一个 aar module,引用之;
但这样一来 每次多一个aar就要多一个 module

解决方案二:在顶部的 library的 libs中放入aar,在项目的
build.gradle中修改

        allprojects {
            repositories {
                jcenter()
                flatDir {
                    dirs '../TopLibModule/libs';
                }
            }
        }

        需要用到 aar的Module 中加入对应的引用
                compile(name:'one', ext:'aar')
    dirs '../TopLibModule/libs';
        这个只是一个相对路径,也可以新建一个目录,比如跟
     TopLibModule同级别的 ExtendedAars 目录下放入多个aar
     项目build.gradle 引用为 dirs '../ExtendedAars';

另 把 aar编译为 release的方法为:

aar module 的源码工程里 Open module setting , 把aar module 引入某个 module,
dependencies中找到aar module,最右侧列 Scope,选择对应的编译选项。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容