使用新的Android Studio和新的3.0.0 Gradle插件。
生成警告时:
registerResGeneratingTask is deprecated, use
registerGeneratedFolders(FileCollection)
使用新的Android Studio和新的3.0.0 Gradle插件。
生成警告时:
registerResGeneratingTask is deprecated, use
registerGeneratedFolders(FileCollection)
Answers:
据我所知,添加为类路径依赖项的插件会带来问题。即火力地堡遇到了问题。勺子和扑动。进行此Google搜索会发现很多GitHub存储库,并且在同一件事上引发了一个问题,它们的共同点在于它是Gradle插件。面料似乎是一个原因,以及,如提到的伴侣 *
据我所知,问题来自一个/多个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'
}
问题本身很难发现。据我所知,在我检查过的所有插件(并在此答案中链接过)中,都没有一个导致该问题的原因。如果您编写了导致该问题的代码(可以解决此问题;添加第三方gradle插件不会导致该问题),则可以尝试一些方法。
据我所知,TestVariant
通过遵循Gradle插件3.0.0迁移指南中的主题,更新了Gradle文件(尽管在Spoon库中,通过更改与相关的行来解决)可以解决该问题。
整个内容都包含在开发人员文档中,但是根据存在问题的项目上的拉取请求,我认为这是一些相关的内容:
除了更新Gradle版本和插件外,您还需要google()
在下添加repo repositories
。
compile
现在是implementation
或api
,但implementation
推荐使用。
provided
是compileOnly
和apk
是runtimeOnly
androidTestCompile
已经成为androidTestImplementation
,并且testCompile
->testImplementation
如果使用调味料,则必须使用调味料尺寸(由文档覆盖)。
对于构建类型,如果有一个库没有该构建类型,则必须包括回退。这些在profile
块下面的android
块中定义。
如果尚未完成,则必须首先定义gradle插件。如果您没有任何其他类路径依赖关系,那不是问题。但是,如果这样做,请确保首先定义gradle插件。
如果您使用testVariants
,请确保您没有testedVariant
在课堂上打电话。这似乎是Spoon库的原因。
据我所知,这些都是为解决此问题而进行的一些更改。
更新到最新版本的Fabric Gradle插件可解决此问题。
从变更日志:
正确安装Fabric后,这个问题为我解决了
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' }
}
项目级别的构建等级
使用以下版本的Google Services依赖项。
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
都会引起此警告通知。