美文网首页androidgradle
More than one file was found wit

More than one file was found wit

作者: 孙大硕 | 来源:发表于2020-08-04 09:53 被阅读0次

    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文件
            }
        }
    }
    

    相关文章

      网友评论

        本文标题:More than one file was found wit

        本文链接:https://www.haomeiwen.com/subject/mriirktx.html