Android SDK中怎么打入本地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,發(fā)現自己AAR引的AAR還是沒有打進來
那有人又說了,這個也好解決,誰用我的AAR,誰就引一下我的AAR引的AAR(感覺自己像一個rapper)。雖然這個辦法可行,但這個也太麻煩了。
那AAR還有另外一種引入方式,嘗試一下吧:
implementation(name: 'xxxxx', ext: 'aar')
那先恭喜你,打包一下就能成功,那引一下吧,發(fā)現根本同步不下來??磍og(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文件
}
}
}