一、将module打包成aar库
1.1、module的build.gradle文件
plugins {
//id 'com.android.application'//变更为下面代码
id 'com.android.library'
}
android {
......
defaultConfig {
//applicationId "********"//删除该代码
......
}
......
}
//下面代码是和android{......}同级。
def _BASENAME = "TestJar";
def _VERSION = "_V1.0";
def _DestinationPath = "build"; //生成jar包的位置
def zipFile = file('build/intermediates/intermediate-jars/release/classes.jar'); //待打包文件位置
task deleteBuild(type:Delete){
delete _DestinationPath + _BASENAME + _VERSION + ".jar"
}
task makeJar(type:Jar){
from zipTree(zipFile)
from fileTree(dir:'src/main',includes:['assets/**']) //将assets目录打入jar包
baseName = _BASENAME + _VERSION
destinationDir = file(_DestinationPath)
}
makeJar.dependsOn(deleteBuild, build)
1.2、在Android studio进行打包如下图,最终生成的aar文件位于项目路径\app\build\outputs\aar下,选用release版本就很好。

二、引用aar依赖库
1、添加依赖时报错:More than one file was found with OS independent path 'lib/x86/libc++_shared.so'
在module的build.gradle中添加
android{
........
packagingOptions {//加上这些代码 More than one file was found with OS independent path 'lib/x86/libc++_shared.so'
pickFirst 'lib/armeabi-v7a/libc++_shared.so'
pickFirst 'lib/armeabi-v8a/libc++_shared.so'
pickFirst 'lib/arm64-v8a/libc++_shared.so'
pickFirst 'lib/x86/libc++_shared.so'
pickFirst 'lib/x86_64/libc++_shared.so'
}
}
2、aar中如果有布局文件,如果aar布局文件的名跟主module中的布局文件重名,就会导致aar中引用该布局文件异常。
3、aar包中只有资源文件和class文件,所以aar中需要的第三方依赖,需要在主module中添加一遍。
4、AndroidManifest.xml合并出问题时android:tools="android:icon"应该添加在设置android:icon属性的地方,不管是application、activity、meta-data或者其它。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix