Check your dependencies for uses of +
in the versions. Some dependency could be using com.android.support:appcompat-v7:+
. This leads to problems when a new version gets released and could break features.
The solution for this would be to either use com.android.support:appcompat-v7:{compileSdkVersion}.+
or don't use +
at all and use the full version (ex. com.android.support:appcompat-v7:26.1.0
).
If you cannot see a line in your build.gradle files for this, run in android studio terminal to give an overview of what each dependency uses
gradlew -q dependencies app:dependencies --configuration debugAndroidTestCompileClasspath
(include androidtest dependencies)
OR
gradlew -q dependencies app:dependencies --configuration debugCompileClasspath
(regular dependencies for debug)
which results in something that looks close to this
------------------------------------------------------------
Project :app
------------------------------------------------------------
debugCompileClasspath - Resolved configuration for compilation for variant: debug
...
+--- com.android.support:appcompat-v7:26.1.0
| +--- com.android.support:support-annotations:26.1.0
| +--- com.android.support:support-v4:26.1.0 (*)
| +--- com.android.support:support-vector-drawable:26.1.0
| | +--- com.android.support:support-annotations:26.1.0
| | \--- com.android.support:support-compat:26.1.0 (*)
| \--- com.android.support:animated-vector-drawable:26.1.0
| +--- com.android.support:support-vector-drawable:26.1.0 (*)
| \--- com.android.support:support-core-ui:26.1.0 (*)
+--- com.android.support:design:26.1.0
| +--- com.android.support:support-v4:26.1.0 (*)
| +--- com.android.support:appcompat-v7:26.1.0 (*)
| +--- com.android.support:recyclerview-v7:26.1.0
| | +--- com.android.support:support-annotations:26.1.0
| | +--- com.android.support:support-compat:26.1.0 (*)
| | \--- com.android.support:support-core-ui:26.1.0 (*)
| \--- com.android.support:transition:26.1.0
| +--- com.android.support:support-annotations:26.1.0
| \--- com.android.support:support-v4:26.1.0 (*)
+--- com.android.support.constraint:constraint-layout:1.0.2
| \--- com.android.support.constraint:constraint-layout-solver:1.0.2
(*) - dependencies omitted (listed previously)
If you have no control over changing the version, Try forcing it to use a specific version.
configurations.all {
resolutionStrategy {
force "com.android.support:appcompat-v7:26.1.0"
force "com.android.support:support-v4:26.1.0"
}
}
The force dependency may need to be different depending on what is being set to 28.0.0