警告:API 'variant.getMergeResources()' 已过时,已替换为 'variant.getMergeResourcesProvider()'

Posted

技术标签:

【中文标题】警告:API \'variant.getMergeResources()\' 已过时,已替换为 \'variant.getMergeResourcesProvider()\'【英文标题】:WARNING: API 'variant.getMergeResources()' is obsolete and has been replaced with 'variant.getMergeResourcesProvider()'警告:API 'variant.getMergeResources()' 已过时,已替换为 'variant.getMergeResourcesProvider()' 【发布时间】:2019-11-12 20:16:14 【问题描述】:

我每次构建应用程序时都会收到此警告。我想我已经更新了所有的库,有人可以告诉我问题出在哪里?显然,我认为这可能来自 Google Play 服务,但我拥有我正在使用的所有库的最新版本。

我找不到任何可以解决问题的方法

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

【问题讨论】:

你能把你的gradle文件同时发布在app和project上吗 variantOutput.getPackageApplication() is obsolete的可能重复 通过发布一些堆栈跟踪,不清楚哪个插件可能会导致警告(即使它似乎是com.google.gms.googleservices)......这个问题可以用版本4.3.0重现。跨度> 我已在此链接中解决了 Ashish 解决方案的问题:***.com/questions/56816296/… API 'variant.getMergeResources()' is obsolete and has been replaced with 'variant.getMergeResourcesProvider()'的可能重复 【参考方案1】:

我收到了完全相同的警告,我从我的应用程序的 build.gradle 中删除了这一行。

apply plugin: 'com.google.gms.google-services'

原来我不需要插件,警告消失了。

【讨论】:

如果你去掉这行,谷歌服务的所有库仍然可以正常工作吗? 它是一个小应用程序,我只提供一些广告,所以我在依赖项implementation 'com.google.android.gms:play-services-ads:18.0.0' 中有这条线,就可以了。来自here。 我尝试删除此行应用插件,然后,谷歌找不到 google_app_id【参考方案2】:

看起来是由 gms services 4.3.0 引起的。这似乎只是一个警告,不会引起任何问题。但是,如果您愿意,可以在项目级 gradle 文件中使用早期版本的 gms 服务来摆脱它:

com.google.gms:google-services:4.2.0

【讨论】:

【参考方案3】:

从技术上讲,这是一个“警告”,而不是错误。要消除警告的需要,请将您的 gms 降级到较低版本,例如 4.2.0

【讨论】:

【参考方案4】:

对于在我的情况下仍然面临同样问题的人来说,错误是因为法语撇号 (')

我把这个字符串翻译成法语,它导致了错误

<string name="same_address">l'adresse de départ et l'adresse d'arrivée sont les mêmes!</string>

您必须在任何撇号前添加一个反斜杠 (),如下所示:

<string name="same_address">l\'adresse de départ et l\'adresse d\'arrivée sont les mêmes!</string>

【讨论】:

【参考方案5】:

根据官方firebase documents,google-services插件4.3.2版本有此问题。

google-services 插件 4.3.2

修复了 getMergeResourcesProvider 警告。更多详情,请参阅 GitHub PR 82。

所以将com.google.gms:google-services classpath 升级到 4.3.2 或更高版本。

【讨论】:

以上是关于警告:API 'variant.getMergeResources()' 已过时,已替换为 'variant.getMergeResourcesProvider()'的主要内容,如果未能解决你的问题,请参考以下文章

iOS去除api过期警告提示

警告:API 'variant.getMergeResources()' 已过时,已替换为 'variant.getMergeResourcesProvider()'

警告:API 'variant.getJavaCompile()' 已过时,已替换为 'variant.getJavaCompileProvider()'

Android PlayStore 警告您的应用当前针对 API 级别 25

非公开 API 使用 iTunesConnect 警告

JavaFX FXML API 版本警告