使用新版本的Android Studio和3.0.0 Gradle插件。
构建时出现了一些警告:
registerResGeneratingTask is deprecated, use
registerGeneratedFolders(FileCollection)
使用新版本的Android Studio和3.0.0 Gradle插件。
构建时出现了一些警告:
registerResGeneratingTask is deprecated, use
registerGeneratedFolders(FileCollection)
Alex Cohn在评论中提到,弃用是一种警告。在这种情况下,它意味着这是一个将来会被删除的功能。所以现在假设它是一个插件(而不是由你自己制作的),你可以忽略它。到它被删除的时候,大多数/全部主要插件应该会更新以修复它。
再次强调,这只是一个警告,不是错误。如果您无法解决问题,可以继续运行它并忽略它。禁用例如Fabric*插件是过度反应,因为它仍然可以使用。
我自己不使用Fabric,而且Fabric不是开源的,所以我不知道开发人员是否已经修复了它
TL;DR:Gradle插件是原因。这是一个警告(不是错误),因此删除导致问题的插件是过度反应。如果您无法解决它,请将其保留,只要目前它只是被弃用而不是被删除
classpath ('com.google.firebase:firebase-plugins:1.1.0') {
exclude group: 'com.google.guava', module: 'guava-jdk5'
}
对于构建类型,你需要包含备选项以防库没有该构建类型。这些定义在android
块下的profile
块中。
如果还没有完成,首先要定义gradle插件。如果您没有任何其他类路径依赖关系,这不是问题。但是如果您有,请确保先定义gradle插件。
如果您使用了testVariants
,请确保您不在类中调用testedVariant
。这似乎是Spoon库的原因。
据我所知,这些是为解决问题所做的一些更改。
编译失败;请参阅编译器错误输出以获取详细信息。
我正在使用版本为4.2.0
的Play服务Gradle插件com.google.gms:google-services
。
所以,这就是导致我的警告的原因,并且在插件得到修复之前无法消除。该问题位于此处
正如@Zoe提到的,这可能也来自其他Gradle插件。
更新到最新版本的 Fabric Gradle 插件可以解决这个问题。
从变更日志中可以看到:
在我的情况下,这是由于Android支持库版本不匹配引起的。我将所有模块更新到了最新版本(28.0.0),问题得以解决。
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());
}
}
build.gradle
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' }
}
所有其他答案都是关于第三方组件的问题。
以下是如何直接更新使用registerResGeneratingTask
的项目:
之前:
variant.registerResGeneratingTask generateIcon, ICON_DIR
之后:
variant.mergeResourcesProvider.get().dependsOn generateIcon
variant.registerGeneratedResFolders files(ICON_DIR)
项目级别的 Build.Gradle
使用以下版本的 Google 服务依赖。
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'
}
}
问题已解决。
对于我来说,当我关闭了 Fabric Gradle 插件时,这个警告就消失了,请检查您是否使用了 Fabric 或其他负责此警告的插件。
com.google.gms:google-services
4.0.1
和4.0.2
都会导致出现此警告通知。 - Martin Zeitler