More than one file was found with OS independent path 'res/values/values.xml

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,发现自己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文件
        }
    }
}

你可能感兴趣的:(More than one file was found with OS independent path 'res/values/values.xml)