我正在使用 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
orivy.xml
) of a module in a repository defined in therepositories { }
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/