使用新的安卓工作室与新的3.0。 当建立一些警告发生时:
registerResGeneratingTask is deprecated, use registerGeneratedFolders(FileCollection)
对我来说,这个警告消失时,我关闭了面料级插件,请检查如果你使用面料或另一个插件,我负责这个警告。
据我所知,作为类路径依赖项添加的插件会产生问题。也就是说 火力点有问题。还有 勺子和 颤动。做 这个谷歌搜索揭示了很多 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迁移指南中的主题来解决。
TestVariant
所有的东西都涵盖了 开发者文件,但是这里有一些东西我认为是相关的,基于对项目的拉请求,在那里它一直是一个问题:
除了更新 Gradle 版本和插件,您还需要在 repositories下添加 google()回购。
repositories
google()
compile现在是 implementation或 api,但是 implementation是推荐的。
compile
implementation
api
provided是 compileOnly,apk是 runtimeOnly
provided
compileOnly
apk
runtimeOnly
androidTestCompile变成了 androidTestImplementation,testCompile-> testImplementation
androidTestCompile
androidTestImplementation
testCompile
testImplementation
如果使用风味,则必须使用风味尺寸(由文档覆盖)。
对于生成类型,必须包括备份,以防存在没有该生成类型的库。它们在 android块下的 profile块中定义。
android
profile
如果还没有完成,必须首先定义的级别插件。如果您没有任何其他类路径依赖项,那么这不是问题。但是如果您这样做,请确保首先定义了 gradle 插件。
如果使用 testVariants,请确保不要在类中调用 testedVariant。这似乎就是勺子图书馆的起因。
testVariants
testedVariant
据我所知,这些都是为了解决这个问题而做出的一些改变。
更新到最新版本的布料级别插件修复了这个问题。
来自更新日志:
Https://docs.fabric.io/android/changelog.html#march-15-2018
在我的案例中,这是由于 Android 支持库版本不匹配造成的。 我更新了所有的模块到最新的版本(28.0.0) ,并解决了这个问题。
我使用的播放服务级插件 com.google.gms:google-services与版本 4.2.0。
com.google.gms:google-services
4.2.0
在源代码中我们可以看到:
因此,对我来说,这就是我的警告的原因,不能删除,直到插件得到修复。问题是 给你
正如@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的 你的项目:
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' } }
帮我解决了一个问题。