警告:API 'variant.getExternalNativeBuildTasks()' 已过时并已替换为 'variant.getExternalNativeBuildProviders()'

Posted

技术标签:

【中文标题】警告:API \'variant.getExternalNativeBuildTasks()\' 已过时并已替换为 \'variant.getExternalNativeBuildProviders()\'【英文标题】:WARNING: API 'variant.getExternalNativeBuildTasks()' is obsolete and has been replaced with 'variant.getExternalNativeBuildProviders()'警告:API 'variant.getExternalNativeBuildTasks()' 已过时并已替换为 'variant.getExternalNativeBuildProviders()' 【发布时间】:2019-05-23 08:46:20 【问题描述】:

无法解决此警告。我该如何解决这个问题?

 variant.getExternalNativeBuildTasks()' is obsolete and has been replaced with 
 variant.getExternalNativeBuildProviders()

【问题讨论】:

API 'variant.getExternalNativeBuildTasks()' is obsolete and has been replaced with 'variant.getExternalNativeBuildProviders()的可能重复 这里是提供的修复。 ***.com/a/55193824/3806413 【参考方案1】:

只需将 Fabric gradle 插件更新到 1.28.0

dependencies 
   classpath 'io.fabric.tools:gradle:1.28.0'

【讨论】:

【参考方案2】:

将此android.debug.obsoleteApi=true 添加到gradle.properties 文件中。并使 gradle 干净,同步然后构建一个 APK。为我工作。我有 Android Studio 3.3 和 Gradle 版本 4.10.1。

有关更多信息,请查看此链接:Android Gradle plugin release notes。

我同意其他贡献者的观点:Fabric 会导致此错误。

更新

查看Valdislav Panchenko's答案:

现在您只需将 Fabric 插件更新为 1.28.0,如下所示:

dependencies 
   classpath 'io.fabric.tools:gradle:1.28.0'

【讨论】:

您也可以将此标志与命令./gradlew assembleDebug -Pandroid.debug.obsoleteApi=true一起使用【参考方案3】:

很可能是由 Crashlytics 所需的 Fabric 插件引起的。

注释掉apply plugin: 'io.fabric' 可以解决问题。所以唯一的选择是等到谷歌开发者修复 Fabric 的插件。

【讨论】:

【参考方案4】:

这是由您项目中使用的 Gradle 插件之一引起的。 检查 build.gradle 文件并尝试一一删除 apply plugin: xxx 以准确了解哪个插件导致警告。 在我们的项目中,昨天 Google 将 Android Studio 更新到 3.3 后,它是 apply plugin: 'io.fabric'

【讨论】:

我从 build.gradle 中删除了 fabric 插件,警告终于消失了。感谢您的支持。【参考方案5】:

这发生在我身上,但我需要继续使用 Fabric 插件。

对于那些需要保持Fabric插件应用的人,临时的解决方案是在项目级别回到之前版本的gradle。

将类路径版本更改为com.android.tools.build:gradle:3.2.1

【讨论】:

【参考方案6】:

对于那些即使不使用织物也面临这个问题的人,忘记上面 Vitaly Zeyenko 的更新答案,只需转到项目的 gradle 文件夹并打开 gradle.properties 文件并添加这一行 -->>> android.debug.obsoleteApi=true 到它...

之后,清理并重建项目...这是一个比命令行更好的解决方案,因为很多人已经将 JDK 环境设置为计算机上的错误位置,并且通过命令行

【讨论】:

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

iOS去除api过期警告提示

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

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

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

非公开 API 使用 iTunesConnect 警告

JavaFX FXML API 版本警告