android - Android Gradle找不到远程AAR

标签 android gradle aar

我正在使用 Gradle v5.4 Android Gradle插件v3.5.2 ,没有任何问题!
我有一个远程Artifactory存储库,我在其中上载了项目中需要的.aar文件。
当我更新到 Gradle v6.5 Android Gradle插件v4.0.1 时,不再下载那些.aar文件。
这就是我添加这些依赖项的方式:

implementation "ar.com.sebasira:some-library:1.0.0@aar"
在升级之前,这工作得很好。
在日志中,我可以看到AndroidStudio在以下位置查找它:

https://myrepo.com.ar/ar/com/sebasira/some-library/1.0.0/some-library-1.0.0.pom


如果将URL放在浏览器中,确实找不到任何内容,但是如果将最后一部分(扩展名)更改为.aar,则可以下载 Artifact 。
我以为添加 @aar 是为了指示Gradle查找.aar文件,但似乎不起作用。
我也尝试以其他方式添加依赖项,但是没有运气。
implementation group: 'ar.com.sebasira', name: 'some-library', version: '1.0.0', ext: 'aar'

最佳答案

我发现,自 Gradle v6.0 起,Gradle假定远程存储库中不存在.pom文件是因为 Artifact 不存在,因此默认情况下不会查找它。根据release notes:

If Gradle fails to locate the metadata file (.pom or ivy.xml) of a module in a repository defined in the repositories { } section, it now assumes that the module does not exist in that repository.

...

You can opt into the old behavior for selected repositories by adding the artifact() metadata source.


因此,解决方案是将其添加到有问题的存储库中,如下所示:
repositories {
    maven {
        url 'the-repo-url'
        metadataSources {
            artifact()
        }
    }
}

关于android - Android Gradle找不到远程AAR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64403166/

相关文章:

android - Gradle 构建无法从自定义 Maven 存储库获取依赖项

android - 如何在 Android 中将外部 jar 文件包含到 aar 文件中

android - TouchEvent 同时执行 if 和 else 部分

java - IOException java.net.ConnectException : failed to connect to/127. 0.0.1(端口 5000):连接失败:ECONNREFUSED(连接被拒绝)

android -/tools/external/gradle/gradle-4.5-bin.zip(无此类文件或目录)

java - 如何更改 Java 构建中的 gradle 元数据位置

android - AAR中aapt/AndroidManifest.xml的作用

android - AAR Android 库 - 禁用 Assets 压缩

android - 如何在android中以秒为单位获得UTC偏移量

android - Facebook 3.0 Android 第二次登录尝试返回 "Session state closed"