不推荐使用 registerResGeneratingTask,请使用 registerGeneratedFolders (FileCollection)

使用新的安卓工作室与新的3.0。
当建立一些警告发生时:

registerResGeneratingTask is deprecated, use
registerGeneratedFolders(FileCollection)
60989 次浏览

对我来说,这个警告消失时,我关闭了面料级插件,请检查如果你使用面料或另一个插件,我负责这个警告。

据我所知,作为类路径依赖项添加的插件会产生问题。也就是说 火力点有问题。还有 勺子颤动。做 这个谷歌搜索揭示了很多 GitHub 的回购问题,它们的共同点就是它是一个 Gradle 插件。面料似乎也是一个原因,如 伙计 * 所提到的

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

正如 Alex Cohn在评论中提到的,弃用是一种警告。在这种情况下,这意味着它是一个最终将被删除的特性。所以现在,假设它是一个插件(不是你自己做的) ,你可以忽略它。当它被删除的时候,大部分/所有的主要插件都应该被更新来修复它。

同样,这是一个警告;不是一个错误。您仍然可以运行它,如果对这个问题无能为力,则可以忽略它。禁用 Fabric * 插件是过度杀伤,因为它仍然可以工作。

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

渐变插件是原因。这是一个警告(而不是一个错误) ,因此删除导致问题的插件是过分的。如果您不能修复它,只要它只是在此刻被弃用(而不是删除) ,就不要管它


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

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

这个问题本身是相当难以发现的。据我所知,在我检查的所有插件中(并在这个答案中链接) ,没有一个单独的问题会导致这种情况。如果您已经编写了导致问题的代码(并且有可能修复它; 添加第三方渐变插件不会导致问题) ,那么您可以尝试修复一些事情。

根据我所知道的实际原因,通过更新 Gradle 文件(虽然在 Spoon 库中,通过更改与 TestVariant相关的一行来解决) ,通过遵循 Gradle 插件3.0.0迁移指南中的主题来解决。

所有的东西都涵盖了 开发者文件,但是这里有一些东西我认为是相关的,基于对项目的拉请求,在那里它一直是一个问题:

除了更新 Gradle 版本和插件,您还需要在 repositories下添加 google()回购。

compile现在是 implementationapi,但是 implementation是推荐的。

providedcompileOnlyapkruntimeOnly

androidTestCompile变成了 androidTestImplementationtestCompile-> testImplementation

如果使用风味,则必须使用风味尺寸(由文档覆盖)。

对于生成类型,必须包括备份,以防存在没有该生成类型的库。它们在 android块下的 profile块中定义。

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

如果使用 testVariants,请确保不要在类中调用 testedVariant。这似乎就是勺子图书馆的起因。

据我所知,这些都是为了解决这个问题而做出的一些改变。

更新到最新版本的布料级别插件修复了这个问题。

来自更新日志:

  • 修正了“ registerResGeneratingTask”失效警告。

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

在我的案例中,这是由于 Android 支持库版本不匹配造成的。 我更新了所有的模块到最新的版本(28.0.0) ,并解决了这个问题。

我使用的播放服务级插件 com.google.gms:google-services与版本 4.2.0

在源代码中我们可以看到: enter image description here

因此,对我来说,这就是我的警告的原因,不能删除,直到插件得到修复。问题是 给你

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

在正确安装布料之后,这个问题为我解决了

import com.crashlytics.android.Crashlytics;
import io.fabric.sdk.android.Fabric;


public class MyApplication extends Application {




@Override
public void onCreate() {
super.onCreate();
Fabric.with(this, new Crashlytics());


}
}

建造,分级

buildscript {
repositories {
maven { url 'https://maven.fabric.io/public' }
}


dependencies {
classpath 'io.fabric.tools:gradle:1.+'
}
}


apply plugin: 'com.android.application'
apply plugin: 'io.fabric'


dependencies {
implementation 'com.crashlytics.sdk.android:crashlytics:2.9.9'
}


repositories {
mavenCentral()
maven { url 'https://maven.fabric.io/public' }
}

这个问题通过 GoogleServicesPluginVersion4.3.0(通过 这个承诺解决)得到了解决

buildscript {
dependencies {
// Change version to 4.3.0
classpath 'com.google.gms:google-services:4.3.0'
}
}

找到 给你

我有这个错误消息和许多其他人喜欢

x-version is deprecated and use y-version instead and it'll be removed in 2019

我的所有项目突然开始出现相同的错误消息。

Android 工作室对我的防病毒程序发出了警告,我试图配置它,但没有工作。

最后是 我从系统中卸载了 QuickHeal 杀毒软件,现在一切都很好

所有其他的答案都是关于 第三方组件的问题。

下面是如何更新直接使用 registerResGeneratingTask你的项目:

以前:

variant.registerResGeneratingTask generateIcon, ICON_DIR

之后:

variant.mergeResourcesProvider.get().dependsOn generateIcon
variant.registerGeneratedResFolders files(ICON_DIR)

项目级建设

使用以下版本的谷歌服务依赖。

dependencies {
classpath 'com.android.tools.build:gradle:3.4.2'
classpath 'com.google.gms:google-services:4.3.0'
classpath ('com.google.firebase:firebase-plugins:1.1.0') {
exclude group: 'com.google.guava', module: 'guava-jdk5'
}
}

帮我解决了一个问题。