gpt4 book ai didi

android - Gradle 如何用 'variantOutput.getPackageLibrary()' 替换过时的 'variant.getPackageLibraryProvider()' ?

转载 作者:行者123 更新时间:2023-12-01 05:50:23 27 4
gpt4 key购买 nike

我有一个具有多种风格的 Android 库项目。我使用 'maven-publish' 将这些不同风格的 aar 文件上传到私有(private)存储库。插入。我一直在使用variant.outputs[0].outputFile作为 publishing.publications.artifact 的值范围。

publishing.publications.create variant.flavorName, MavenPublication, {
groupId "$libraryGroupId.$variant.flavorName"
artifactId libraryArtifactId
version libraryVersion
artifact variant.outputs[0].outputFile
}

它一直运行良好,但我最近将库的 gradle 插件更新为 com.android.tools.build:gradle:3.3.2并收到以下警告:

WARNING: API 'variantOutput.getPackageLibrary()' is obsolete and has been replaced with 'variant.getPackageLibraryProvider()'. It will be removed at the end of 2019. For more information, see https://d.android.com/r/tools/task-configuration-avoidance. To determine what is calling variantOutput.getPackageLibrary(), use -Pandroid.debug.obsoleteApi=true on the command line to display a stack trace.



这本身不是问题,因为它仍然有效,但我不喜欢这个警告,因为我一直在清理我的 build.gradle ,我想我会尝试修复它。

我尝试了很多不同的组合,在互联网上搜索以尝试查找有关如何从包库提供商处获取 aar 的信息。关于这个主题几乎没有可用的东西(这真的很令人沮丧),但我确实找到了 this post这导致我尝试:
variant.getPackageLibraryProvider().get()
这提供了一个 com.android.build.gradle.tasks.BundleAar 当设置为出版物的工件( artifact variant.getPackageLibraryProvider().get() )并修复警告时,它似乎正在工作。

这是解决此警告的正确方法还是出于某种原因会适得其反?有谁知道我在哪里可以获得更多关于这个的信息?

最佳答案

使用 GradleAndroid Gradle Plugin来源作为引用,我想出了以下内容并且警告消失了:

publishing {
publications {
android.libraryVariants.all { variant ->
if (variant.buildType.name == "release") {
aar(MavenPublication) {
artifact(variant.packageLibraryProvider.get().archivePath)
groupId = '<your group id>'
artifactId = "$project.name"
}
}
}
}
...
}

关于android - Gradle 如何用 'variantOutput.getPackageLibrary()' 替换过时的 'variant.getPackageLibraryProvider()' ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55027107/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com