如何使用来自 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版本和gradle插件版本
如何在android studio中查看当前使用的gradle版本和gradle插件版本