Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android Architecture Components: Gradle sync error for dependency version

Tags:

I'm trying to add ViewModel and LiveData to a Kotlin app. I have the following dependencies added to my module's build.gradle:

implementation "android.arch.lifecycle:extensions:1.1.1"
kapt "android.arch.lifecycle:compiler:1.1.1"
testImplementation "android.arch.core:core-testing:1.1.1"

I'm given the following error:

Android dependency 'android.arch.lifecycle:runtime' has different version for the compile (1.0.0) and runtime (1.1.1) classpath. You should manually set the same version via DependencyResolution

Removing the first line (extensions) fixes the issue, indicating that the error is coming from there, but I can't figure out why.

like image 778
RedBassett Avatar asked Apr 25 '18 01:04

RedBassett


1 Answers

As @RedBassett mentions Support libraries depends on this lightweight import (runtime library) as explained at android developers documentation.

This is, android.arch.lifecycle:runtime:1.0.0 is spreading up in the dependency tree as a result of an internal api (transitive) import so in my case I only had to include extensions library as "api" instead of "implementation" so that it will override its version to the highest (1.1.1).

In conclusion, change

implementation "android.arch.lifecycle:extensions:1.1.1"

to

api "android.arch.lifecycle:extensions:1.1.1"
like image 138
Rubén Viguera Avatar answered Sep 20 '22 22:09

Rubén Viguera