From what I can tell, plugins added as classpath dependencies will cause problems. Those. Firebase had a problem with this. Spoon and flutter . Doing this on Google reveals many GitHub repositories with a problem raised due to the same thing, and all they have in common is that it is a Gradle plugin. The fabric also seems to be the cause, as mentioned by Mate *
From what I can tell, the problem comes from / several Gradle plugins. It may also be called by your Gradle code, but it most likely does not apply if your project is an application and not a Gradle plugin.
And, as Alex Cohn mentioned in his commentary, conviction is a warning. In this case, this means that this function will be deleted in the end. So for now, assuming it's a plugin (not made by you), you can ignore it. By the time it is removed, most / all of the main plugins should be updated to fix this.
And, again, this is a warning; not a mistake. You can still run it and ignore it if you can do nothing about this problem. For example, disabling the Fabric * plugin is unnecessary, as it still works.
I myself donโt use Fabric, and Fabric is not open source, so I donโt know if the developers fixed it or not
TL; DR: Gradle plugins are the reason. This is a warning (not an error), so removing plugins causing the problem is redundant. If you cannot fix it, leave it alone until it is only outdated at the moment (not deleted)
If you use Firebase, there is a specific solution that is also mentioned in the migration guide (the link is given later in this post); exclude guava module
classpath ('com.google.firebase:firebase-plugins:1.1.0') { exclude group: 'com.google.guava', module: 'guava-jdk5' }
The problem itself is quite difficult to detect. From what I can say, there is not a single problem that would cause it in all the plugins I tested (and referenced in this answer). If you wrote something that causes the problem (and it can be fixed; adding a third-party gradle plug-in does not cause this), there are some things you can try to fix.
Based on what I can say about the actual reason, it was resolved by updating the Gradle file (although this was fixed in the Spoon library by changing the line associated with TestVariant ), following the topics in the migration guide for the Gradle 3.0.0 plugin.
All of this is covered in developer docs , but here are some of the things that I find relevant that are based on extraction requests made on projects where this was a problem:
In addition to updating the version and the Gradle plugin, you also need to add google() repositories to the repositories .
compile now implementation or api , but implementation is recommended.
provided compileOnly and apk is runtimeOnly
androidTestCompile became androidTestImplementation , and testCompile testImplementation
If you use fragrances, you should use the sizes of fragrances (specified in the documentation).
For assembly types, you should enable fallback options in case there is a library that does not have this assembly type. They are defined in the profile block under the android block.
If not already done, the Gradle plugin should be defined first. Unless you have other class path dependencies, this is not a problem. But if you do, make sure the gradle plugin is defined first.
If you are using testVariants , make sure you do not call testedVariant in the class. This seems to be the reason for the Spoon library.
These things, as far as I can tell, are some of the changes that were made to fix the problem.