使用新的Android工作室与新的3.0.0 Gradle插件。 当发生一些警告时:
registerResGeneratingTask is deprecated, use
registerGeneratedFolders(FileCollection)
据我所知,作为类路径依赖项添加的插件会产生问题。即Firebase有一个问题。 Spoon和Flutter也是如此。做this Google search揭示了很多GitHub repos,同时引发了一个问题,他们共同的一点是它是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'
}
问题本身很难被发现。从我所知道的,没有一个问题导致我检查的所有插件(并在此答案中链接)。如果您编写了导致问题的内容(并且可以修复它;添加第三方gradle插件不会导致它),您可以尝试修复它。
从我所知道的实际原因来看,它通过更新Gradle文件(虽然在Spoon库中,通过更改与TestVariant
相关的行来修复)通过遵循Gradle插件3.0.0迁移指南中的主题来解决。
整个事情都包括by the developer docs,但这里有一些我认为相关的东西是基于对项目进行的拉取请求,这是一个问题:
除了更新Gradle版本和插件外,您还需要在google()
下添加repositories
repo。
compile
现在是implementation
或api
,但implementation
是推荐的。
provided
是compileOnly
和apk
是runtimeOnly
androidTestCompile
已成为androidTestImplementation
,和testCompile
- > testImplementation
如果使用flavor,则必须使用flavor维度(文档涵盖)。
对于构建类型,如果存在没有该构建类型的库,则必须包含回退。这些在profile
区块下的android
区块中定义。
如果尚未完成,则必须首先定义gradle插件。如果您没有任何其他类路径依赖项,那么这不是问题。但是如果这样做,请确保首先定义gradle插件。
如果你使用testVariants
,请确保你没有在课堂上调用testedVariant
。它似乎是Spoon库的原因。
从我能够说的,这些东西是为解决这个问题所做的一些改变。
我正在使用Play服务Gradle插件com.google.gms:google-services
与版本4.2.0
。
所以对我来说,这就是我警告的原因,在插件修复之前无法删除。问题是here
正如@Zoe所提到的,这也可能来自其他Gradle插件。
最好
更新到最新版本的Fabric Gradle Plugin可以解决此问题。
来自更改日志:
在我的情况下,这是由Android支持库的不匹配版本引起的。我将所有模块更新到最新版本(28.0.0)并解决了它。
正确安装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' }
}
对我来说,当我关闭织物gradle插件时,这个警告消失了,请检查你是否使用了织物或其他负责此警告的插件。