不推荐使用RegisterResGeneratingTask,使用registerGeneratedFolders(FileCollection)

Val*_*hev 151 android gradle kotlin android-studio android-studio-3.0

使用新的Android工作室与新的3.0.0 Gradle插件.
当发生一些警告时:

registerResGeneratingTask is deprecated, use
registerGeneratedFolders(FileCollection)
Run Code Online (Sandbox Code Playgroud)

Zoe*_*Zoe 46

据我所知,作为类路径依赖项添加的插件会产生问题.即Firebase有一个问题.勺子颤动也是如此.这样做的谷歌搜索显示了许多GitHub回购与同一事件引发的问题,他们共同的事实是它是一个Gradle插件.织物似乎也是一个原因,如Mate*所述

据我所知,问题来自于/多个Gradle插件.它也可以由您的Gradle代码触发,但如果您的项目是应用程序而不是Gradle插件,则很可能不适用.

正如Alex Cohn在评论中所提到的,弃用是一个警告.在这种情况下,这意味着它将是最终将被删除的功能.所以现在,假设它是一个插件(而不是由你制作),你可以忽略它.当它被删除时,大多数/所有主要插件都应该更新以修复它.

而且,这又是一个警告; 不是错误.您仍然可以运行它,如果您无法解决该问题,请忽略它.禁用例如Fabric*插件是过度的,因为它仍然有效.

我自己不使用Fabric,而Fabric不是开源的,所以我不知道开发人员是否修复了它

TL; DR: Gradle插件是原因.这是一个警告(而不是错误),因此删除导致问题的插件是过度的.如果你无法修复它,请不要管它,只要它现在只是被弃用(不删除)


如果您使用Firebase,则会有一个特定的解决方案,也会在迁移指南中提及(本文稍后链接); 排除番石榴模块

classpath ('com.google.firebase:firebase-plugins:1.1.0') {
    exclude group: 'com.google.guava', module: 'guava-jdk5'
}
Run Code Online (Sandbox Code Playgroud)

问题本身很难被发现.从我所知道的,没有一个问题导致我检查的所有插件(并在此答案中链接).如果您编写了导致问题的内容(并且可以修复它;添加第三方gradle插件不会导致它),您可以尝试修复它.

从我所知道的实际原因来看,它是通过更新Gradle文件(虽然在Spoon库中,通过更改与之相关的行来修复TestVariant)来解决的,方法是遵循Gradle插件3.0.0迁移指南中的主题.

开发人员文档涵盖整个事情,但是我认为这些内容基于对项目执行的拉取请求而言是相关的:

除了更新Gradle版本和插件外,您还需要添加google()repo repositories.

compile现在implementation还是api,但implementation是推荐一个.

providedcompileOnlyapkruntimeOnly

androidTestCompile已成为androidTestImplementation,和testCompile- >testImplementation

如果使用flavor,则必须使用flavor维度(文档涵盖).

对于构建类型,如果存在没有该构建类型的库,则必须包含回退.这些是在profile块下的android块中定义的.

如果尚未完成,则必须首先定义gradle插件.如果您没有任何其他类路径依赖项,那么这不是问题.但是如果这样做,请确保首先定义gradle插件.

如果您使用testVariants,请确保您不要testedVariant在课堂上打电话.它似乎是Spoon库的原因.

从我能够说的,这些东西是为解决这个问题所做的一些改变.


use*_*494 16

我正在使用Play服务Gradle插件com.google.gms:google-services版本4.2.0.

在源代码中我们可以看到: 在此输入图像描述

所以对我而言,这是我警告的原因,在插件修复之前无法删除.问题在这里

正如@Zoe所提到的,这也可能来自其他Gradle插件.

最好


lui*_*tes 10

更新到最新版本的Fabric Gradle Plugin可以解决此问题.

来自更改日志:

  • 修复了"registerResGeneratingTask"弃用警告.

https://docs.fabric.io/android/changelog.html#march-15-2018


Sim*_*ler 9

该问题已通过Google服务插件4.3.0版解决(此提交已解决)

buildscript {
    dependencies {
        // Change version to 4.3.0
        classpath 'com.google.gms:google-services:4.3.0'
    }
}
Run Code Online (Sandbox Code Playgroud)

这里找到


Mat*_*ate -2

对我来说,当我关闭 Fabric gradle 插件时,这个警告就消失了,请检查您是否使用了 Fabric 或另一个我负责此警告的插件。

  • `com.google.gms:google-services` `4.0.1` 和 `4.0.2` 都会导致此警告通知。 (4认同)
  • 禁用插件 io.fabric 将这些警告中的 8 个减少到 4 个。所以看来来源不止一个。 (3认同)