Android aar开发(app转aar)

本文介绍了如何将Android应用模块转换为AAR库,并处理依赖与资源冲突问题。包括在Gradle配置中启用对库的productFlavors支持,资源文件前缀的添加,以及处理包含SO库的依赖。正确配置能确保AAR库在不同构建类型下的正确使用,并避免与宿主应用的资源ID冲突。

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

android官方说明

https://developer.android.google.cn/studio/projects/android-library.html

1.android app module依赖 aar module

默认是不支持productFlavors 的,如果需要支持,则需添加两个配置

1)默认情况下,应用模块会使用库的发布构建,即使在使用应用模块的调试构建类型时亦是如此。要使用库中不同的构建类型,您必须将依赖项添加到应用的 build.gradle 文件的 dependencies 块中,并在库的 build.gradle 文件中将 publishNonDefault 设置为 true。例如,您应用的 build.gradle文件中的以下代码段会使应用在应用模块于调试模式下构建时使用库的调试构建类型,以及在应用模块于发布模式下构建时使用库的发布构建类型:

dependencies {
    debugCompile project(path: ':library', configuration: 'debug')
    releaseCompile project(path: ':library', configuration: 'release')
}{
    debugCompile project(path: ':library', configuration: 'debug')
    releaseCompile project(path: ':library', configuration: 'release')
}

2)您还必须在自己库的 build.gradle 文件的 android 块内添加以下代码行,以便将此库的非发布配置展示给使用它的项目:

android {
    ...
    publishNonDefault true
}{
    ...
    publishNonDefault true
}

不过请注意,设置 publishNonDefault 会增加构建时间。

 

2.aar的资源文件名要加上个前缀,以防止与宿主app的资源文件id冲突 

可以在gradle在加上
android{
resourcePrefix "前缀"
}
当资源文件名不以这个开头的时候IDE会飘红报错,但是不影响编译

3.有so包的依赖,也要在宿主app的gradle文件中添加

ndk {
abiFilters "armeabi"
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值