项目依赖aar 以及 依赖嵌套aar

一. application 直接依赖 aar(单一依赖)
  1. 拷贝 aar 至 app/libs 目录
  2. app/build.gradle 添加以下代码:
    // 根节点下添加 repositories 节点
    repositories {
        flatDir {
        	dirs 'libs'
      	}
    }  
    
    // dependencies节点内添加依赖
    dependencies {
    	 // aar-name 为 application 要依赖的 aar 包的名称,不包含后缀。
    	 implementation(name: ‘aar-name’, ext: 'aar')
    }
    
二. application 依赖 library,library 依赖 aar(嵌套依赖)

(library名称以下用 aarlibs 代替, library内依赖的 子aar 名称用 sublib 代替)

  1. 拷贝 sublib.aar 至 aarlibs/libs 目录
  2. aarlibs/build.gradle 添加以下代码:
    // 根节点下添加 repositories 节点
    repositories {
        flatDir {
        	dirs 'libs'
      	}
    }
    
    // dependencies节点内添加依赖
    dependencies {
    	 implementation(name: ‘sublib’, ext: 'aar')
    }
    
  3. [重点] 此时 aarlibs 作为 library 有两种使用方式。
    (1). 作为 module 被 application 依赖;
    (2). 打包为新的 aar 被 application 依赖。

下面分别展示两种依赖方式下 application 的配置(主要是为了在引用 library 的同时能让 library 内部的 aar 也生效):

  • 3.1: 作为 module 被 application 依赖:

    • application/app/build.gradle 添加以下代码:
      // 根节点下添加 repositories 节点
      repositories {
      	flatDir {
          	dirs project(':aarlibs').file('libs')
       	}
      }
      
      // dependencies节点内添加依赖
      dependencies {
      	implementation project(':aarlibs')
      }
      
  • 3.2: 作为 aar 被 application 依赖:

    • 将 aarlibs.aar 和 sublib.aar 拷贝至 applicatioon/app/libs目录。
      虽然 aarlibs/libs 目录已经包含 sublib.aar 了,但是项目的 libs 里也需要拷贝一份,否则报错找不到 sublib.aar 内部的 Class。不过经简单测试,apk 的体积并不会因为重复拷贝一份 sublib.aar 而将其大小做 double 算进 apk 体积内。
    • application/app/build.gradle 添加以下代码:
      // dependencies节点内添加依赖
      dependencies {
      	implementation fileTree(dir: 'libs', include: ['*.aar'])
      }
      
附:清除 aar 缓存
  1. terminal 进入项目根目录
  2. cd .idea/libraries
  3. rm Gradle__xxxx_aar.xml
  4. AndroidStudio 点击 左上角 SyncProject 和 SyncFile 按钮
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值