Android aar中怎么打入本地aar 文件
折腾了一下午,答案就是 怎么都打不进去
如果你用这种引入方式(这种感觉就是错的,我也不知道之前为啥这样引入):
implementation fileTree(dir: 'libs', include: ['*.jar'], '[*.aar]')
那么恭喜你,你将喜提以下错误
More than one file was found with OS independent path 'res/values/values.xml
别在网上看那些乱七八糟的,如果看到这个错误,八成就是 aar 导入方式错了
那有人就说了,这个错误有解决办法,加上下面这段代码就行了
packagingOptions {
merge 'res/values/values.xml'
merge 'AndroidManifest.xml'
merge 'res/drawable/login_bg.xml'
merge 'R.txt'
merge 'classes.jar'
}
加上之后欣喜若狂,真的能打包了,可是别的地方一引自己的AAR,发现自己AAR引的AAR还是没有打进来
那有人又说了,这个也好解决,谁用我的AAR,谁就引一下我的AAR引的AAR(感觉自己像一个rapper)。虽然这个办法可行,但这个也太麻烦了。
那AAR还有另外一种引入方式,尝试一下吧:
implementation(name: 'xxxxx', ext: 'aar')
那先恭喜你,打包一下就能成功,那引一下吧,发现根本同步不下来。看log(log被我删了,放不了图了),大致意思就是说,我们AAR里引的AAR是本地的,没有groupID 什么的 Maven下载不来。
重点来了,怎么解决呢?
解决办法
既然说我们没有groupID,我们弄个groupID不就行了吗,各位应该都有Maven仓库吧,把本地的AAR上传到远端不就行了,折腾了半天,怎么没想起来呢,害!
代码如下:
apply plugin:'maven-publish'
publishing{
repositories {
maven {
credentials {
username "userName"
password "PWD"
}
url "XXXX" //maven库地址
}
}
publications{
audio(MavenPublication) {
groupId 'XXX'
artifactId 'XXX'
version 'XXX'
artifact 'XXX' //aar目录下面的audio.aar文件
}
}
}
网友评论