Gradle打包aar以及引用的完全教程

本文详细介绍了如何配置Gradle以打包AAR文件,包括设置sourceSet路径、整合so库及清理缓存的方法。同时,提供了如何在项目中正确引用AAR文件的步骤,包括指定aar目录、依赖声明及模块打包注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

AAR打包

配置sourceSet

sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
            resources.srcDirs = ['src']
            aidl.srcDirs = ['src']
            renderscript.srcDirs = ['src']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
            jniLibs.srcDirs = ['libs']
        }
    }

里面的路径需要根据工程实际的路径进行编写。
如果需要把so库也打进AAR中,把so库所在的armeabi文件夹放入libs目录下(具体的目录剋自己调节),并需要配置jniLibs.srcDirs = [‘libs’],划重点,这里的libs目录,是根据实际的位置来定。有些可能是src/main/jniLibs.

打开gradle面板,点击:Lib:assembleRelease即可,最后在build文件夹中生成。
可以把aar文件拖进AS,检查里面是否有所需要的类。

AAR引用

需要指定aar文件的目录flatDir

android {
    compileSdkVersion rootProject.compileSdkVersion
    buildToolsVersion rootProject.buildToolsVersion

    defaultConfig {
  		//此处是打出的APK支持什么架构的CPU
        ndk {
            abiFilters "armeabi"
        }
    }
   
    repositories {
        flatDir {
            dirs 'libs', '../xxx/libs', '../../../xxx/libs'  //这里代表目录
            dirs project(':VideoLib').file('libs')  //这里代表要引入子库中的aar
        }
    }
}

然后在dependencies依赖中指明需要的依赖

dependencies {
    implementation fileTree(include: ['*.jar','*.aar'], dir: 'libs')  //这里也指明要加载全部aar
    implementation(name: 'ShortcutBadger-release', ext: 'aar') //单独指明要加载哪个aar
    implementation project(':VideoLib') //指明要加载VideoLib模块中libs的aar
}

模块中若包含有aar,对此模块打包时,并不会包含子aar,因此app引入时,也可以同时导入这两个aar,进行编译。

清除 aar 缓存

terminal 进入项目根目录
cd .idea/libraries
rm Gradle__xxxx_aar.xml
AndroidStudio 点击 左上角 SyncProject 和 SyncFile 按钮

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值