如何使用来自 Android Gradle 插件的 Variant API 的新方法 variant.getGenerateBuildConfigProvider()?

Posted

技术标签:

【中文标题】如何使用来自 Android Gradle 插件的 Variant API 的新方法 variant.getGenerateBuildConfigProvider()?【英文标题】:How to use new method variant.getGenerateBuildConfigProvider() from Android Gradle plugin's Variant API? 【发布时间】:2019-06-10 12:14:39 【问题描述】:

在我的一个项目中将 android Gradle 插件升级到 3.3.0 版后,我在同步项目期间收到了几个新警告。不幸的是,我不知道如何解决其中之一。警告是:

警告:API 'variant.getGenerateBuildConfig()' 已过时,已替换为 'variant.getGenerateBuildConfigProvider()'。 它将在 2019 年底被删除。 有关详细信息,请参阅https://d.android.com/r/tools/task-configuration-avoidance。 要确定调用 variant.getGenerateBuildConfig() 的内容,请在命令行上使用 -Pandroid.debug.obsoleteApi=true 以显示堆栈跟踪。

导致警告的代码行是: variant.generateBuildConfig.appPackageName 在我的一个 gradle 文件中。

我的问题是,我应该如何使用新的 Varaint API 的方法 getGenerateBuildConfigProvider() 来检索 appPackageName?我尝试查找 API 的文档,还检查了警告中的链接,但遗憾的是,我没有找到任何有用的信息。

【问题讨论】:

variant.getGenerateBuildConfigProvider().configure gbc -> println "===" + gbc.appPackageName musisz pamiętać, że dostęp do tej zmiennej masz tylko w środku 关闭/行动 ... jak byś podał więcej szczegółów to pewnie lepsze rozwiązanie by się znalazło 【参考方案1】:

我想,这个链接会解决你的问题。API 'variant.getExternalNativeBuildTasks()' is obsolete and has been replaced with 'variant.getExternalNativeBuildProviders()

请检查依赖关系,将'compile'或'API'替换为'implementation',使用'implementation'它将解决您的警告。

【讨论】:

我想,这个链接会解决你的问题不,它不会......如果你从链接中阅读问题,你就会知道这是第 3 方内部的问题插件/脚本不是它自己的【参考方案2】:

使用variant.getGenerateBuildConfigProvider().get().appPackageName 获取包名

【讨论】:

以上是关于如何使用来自 Android Gradle 插件的 Variant API 的新方法 variant.getGenerateBuildConfigProvider()?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用Android Studio开发Gradle插件

如何使用Android Studio开发Gradle插件

如何在android studio中查看当前使用的gradle版本和gradle插件版本

如何在android studio中查看当前使用的gradle版本和gradle插件版本

如何在android studio中查看当前使用的gradle版本和gradle插件版本

如何在android studio中查看当前使用的gradle版本和gradle插件版本