Android Studio 打包 aar本地依赖

一、背景

在写基础库的时候需要打包一个arr提供给业务app的时候有两种方式,一种是将打包的aar直接发给业务开发人员通过本地依赖的方式引入或者将打包好的aar上传到maven私服上面业务app通过远程依赖的方式接入。但是有时候我们不想将自己的maven私服提供给别人就需要用本地依赖的方式,AS本地依赖打包出来的aar是不含有三方库的,业务app只依赖arr会报类找不到的错误。

二、解决方案

1.为什么aar不包含依赖代码

Google Android Studio 的负责人在 stackoverflow 上解释了 为什么 Android Studio 不能将多个依赖打包进一个 AAR 文件的原因,是因为将不同的library打包在一起,涉及到资源和配置文件智能合并,所以是个比较复杂的问题,同时也容易造成相同的依赖冲突。

2.app接入的时候引入三方库
apply plugin: 'kotlin-android'
apply plugin: 'org.greenrobot.greendao'
apply plugin: 'kotlin-kapt'

android {
    //为引入aar包做准备
    repositories {
        flatDir { dirs 'libs' }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    //加入aar本地依赖包,例如:
    implementation (name: 'aarName', ext: 'aar')
    //aar依赖的三方库引入
    implementation "com.squareup.retrofit2:converter-gson:2.4.0"
    implementation "com.google.android.material:material:1.1.0"
    ...
}
3.使用fat-aar-android将第三方库代码编译到aar中

官方虽然不支持,但是开发者的能力是无限的,为了解决此问题,开发出来了一个 Gradle 插件 fat-aar-android, 这种方式是抛弃 Android Studio 自带的打包 AAR 的方法,而是自己编写一个生成 AAR 的脚本。

你可能感兴趣的:(Android日常工作,android,java,android,studio)