Reputation: 23
I am trying to update the following dependencies in my app from version 2.2.2 to 2.3.0
androidx.navigation:navigation-fragment-ktx
androidx.navigation:navigation-ui-ktx
As soon as I try to build the app with the new dependency versions I get the following error:
Execution failed for task ':my-ui-module:kaptGenerateStubsKotlin'.
> Could not resolve all files for configuration ':my-ui-module:compileClasspath'.
> Could not resolve androidx.navigation:navigation-fragment-ktx:2.3.0.
Required by:
project :my-ui-module
> No matching variant of androidx.navigation:navigation-fragment-ktx:2.3.0 was found. The consumer was configured to find an API of a library compatible with Java 8, preferably in the form of class files, and its dependencies declared externally, as well as attribute 'org.jetbrains.kotlin.platform.type' with value 'jvm' but:
- Variant 'releaseApiPublication' capability androidx.navigation:navigation-fragment-ktx:2.3.0 declares an API of a library, and its dependencies declared externally:
- Incompatible because this component declares a component, with the library elements 'aar' and the consumer needed a component, preferably in the form of class files
- Other compatible attributes:
- Doesn't say anything about its target Java version (required compatibility with Java 8)
- Doesn't say anything about org.jetbrains.kotlin.platform.type (required 'jvm')
- Variant 'releaseRuntimePublication' capability androidx.navigation:navigation-fragment-ktx:2.3.0 declares a runtime of a library, and its dependencies declared externally:
- Incompatible because this component declares a component, with the library elements 'aar' and the consumer needed a component, preferably in the form of class files
- Other compatible attributes:
- Doesn't say anything about its target Java version (required compatibility with Java 8)
- Doesn't say anything about org.jetbrains.kotlin.platform.type (required 'jvm')
- Variant 'sourcesElements' capability androidx.navigation:navigation-fragment-ktx:2.3.0 declares a runtime of a component, and its dependencies declared externally:
- Incompatible because this component declares documentation and the consumer needed a library
- Other compatible attributes:
- Doesn't say anything about its target Java version (required compatibility with Java 8)
- Doesn't say anything about its elements (required them preferably in the form of class files)
- Doesn't say anything about org.jetbrains.kotlin.platform.type (required 'jvm')
> Could not resolve androidx.navigation:navigation-ui-ktx:2.3.0.
Required by:
project :my-ui-module
> No matching variant of androidx.navigation:navigation-ui-ktx:2.3.0 was found. The consumer was configured to find an API of a library compatible with Java 8, preferably in the form of class files, and its dependencies declared externally, as well as attribute 'org.jetbrains.kotlin.platform.type' with value 'jvm' but:
- Variant 'releaseApiPublication' capability androidx.navigation:navigation-ui-ktx:2.3.0 declares an API of a library, and its dependencies declared externally:
- Incompatible because this component declares a component, with the library elements 'aar' and the consumer needed a component, preferably in the form of class files
- Other compatible attributes:
- Doesn't say anything about its target Java version (required compatibility with Java 8)
- Doesn't say anything about org.jetbrains.kotlin.platform.type (required 'jvm')
- Variant 'releaseRuntimePublication' capability androidx.navigation:navigation-ui-ktx:2.3.0 declares a runtime of a library, and its dependencies declared externally:
- Incompatible because this component declares a component, with the library elements 'aar' and the consumer needed a component, preferably in the form of class files
- Other compatible attributes:
- Doesn't say anything about its target Java version (required compatibility with Java 8)
- Doesn't say anything about org.jetbrains.kotlin.platform.type (required 'jvm')
- Variant 'sourcesElements' capability androidx.navigation:navigation-ui-ktx:2.3.0 declares a runtime of a component, and its dependencies declared externally:
- Incompatible because this component declares documentation and the consumer needed a library
- Other compatible attributes:
- Doesn't say anything about its target Java version (required compatibility with Java 8)
- Doesn't say anything about its elements (required them preferably in the form of class files)
- Doesn't say anything about org.jetbrains.kotlin.platform.type (required 'jvm')
When I looked at the artifacts I noticed, that since version 2.3.0 there now is an extra module file, which contains this "releaseApiPublication" variant.
navigation-fragment-ktx-2.3.0.module:
{
"formatVersion": "1.1",
"component": {
"group": "androidx.navigation",
"module": "navigation-fragment-ktx",
"version": "2.3.0",
"attributes": {
"org.gradle.status": "release"
}
},
"createdBy": {
"gradle": {
"version": "6.4",
"buildId:": "6592867"
}
},
"variants": [
{
"name": "releaseApiPublication",
"attributes": {
"org.gradle.category": "library",
"org.gradle.dependency.bundling": "external",
"org.gradle.libraryelements": "aar",
"org.gradle.usage": "java-api"
},
"dependencies": [
{
"group": "androidx.navigation",
"module": "navigation-fragment",
"version": {
"requires": "2.3.0"
}
},
{
"group": "androidx.navigation",
"module": "navigation-runtime-ktx",
"version": {
"requires": "2.3.0"
}
},
{
"group": "androidx.fragment",
"module": "fragment-ktx",
"version": {
"requires": "1.2.4"
}
},
{
"group": "androidx.lifecycle",
"module": "lifecycle-viewmodel-ktx",
"version": {
"requires": "2.2.0"
}
},
{
"group": "org.jetbrains.kotlin",
"module": "kotlin-stdlib",
"version": {
"requires": "1.3.71"
}
}
],
"files": [
{
"name": "navigation-fragment-ktx-2.3.0.aar",
"url": "navigation-fragment-ktx-2.3.0.aar",
"size": 17267,
"sha512": "db57f768201ac1f662a9ff889698bd33e5593862c88bf226550060b9e16770ee178bc6c9b25ad31f598b63b7144169e78424f68cfdb7c8486a7ed5e03103a2ca",
"sha256": "fbff4ba82564f53e13c3f64402be56a391f1a20bc983557beeff9c07ca0593dd",
"sha1": "9e0e91461ada5a697974a0195c38a163366ea9c7",
"md5": "eec5cb60dd0e8b638125e91c08d21c4c"
}
]
},
{
"name": "releaseRuntimePublication",
"attributes": {
"org.gradle.category": "library",
"org.gradle.dependency.bundling": "external",
"org.gradle.libraryelements": "aar",
"org.gradle.usage": "java-runtime"
},
"dependencies": [
{
"group": "androidx.navigation",
"module": "navigation-fragment",
"version": {
"requires": "2.3.0"
}
},
{
"group": "androidx.navigation",
"module": "navigation-runtime-ktx",
"version": {
"requires": "2.3.0"
}
},
{
"group": "androidx.fragment",
"module": "fragment-ktx",
"version": {
"requires": "1.2.4"
}
},
{
"group": "androidx.lifecycle",
"module": "lifecycle-viewmodel-ktx",
"version": {
"requires": "2.2.0"
}
},
{
"group": "org.jetbrains.kotlin",
"module": "kotlin-stdlib",
"version": {
"requires": "1.3.71"
}
}
],
"files": [
{
"name": "navigation-fragment-ktx-2.3.0.aar",
"url": "navigation-fragment-ktx-2.3.0.aar",
"size": 17267,
"sha512": "db57f768201ac1f662a9ff889698bd33e5593862c88bf226550060b9e16770ee178bc6c9b25ad31f598b63b7144169e78424f68cfdb7c8486a7ed5e03103a2ca",
"sha256": "fbff4ba82564f53e13c3f64402be56a391f1a20bc983557beeff9c07ca0593dd",
"sha1": "9e0e91461ada5a697974a0195c38a163366ea9c7",
"md5": "eec5cb60dd0e8b638125e91c08d21c4c"
}
]
},
{
"name": "sourcesElements",
"attributes": {
"org.gradle.category": "documentation",
"org.gradle.dependency.bundling": "external",
"org.gradle.docstype": "sources",
"org.gradle.usage": "java-runtime"
},
"files": [
{
"name": "navigation-fragment-ktx-2.3.0-sources.jar",
"url": "navigation-fragment-ktx-2.3.0-sources.jar",
"size": 6257,
"sha512": "a6b68eb7fa8aeee59fc5e8e204415e67b286000163164b5b28d39e878870811987758b36cbff5b8f27a80cc5519f6312101e5c612853dc55d7134b0121bbd2b4",
"sha256": "4cf53654f02d796c3ca1338f2c5c4a3d94045c524f6b88db150f3e218a64a914",
"sha1": "9bebacd34921c1dd65c0cf5ceb32f70e8c7b17b9",
"md5": "5473b099adf68016e77bd7472e687a4c"
}
]
}
]
}
Does that mean that I have to make changes to the way I include these dependencies, or is the error unreleated to this new module file?
Upvotes: 2
Views: 1837
Reputation: 6060
For me the issue was fixed when I pulled these Android-specific dependencies down to a Gradle module that actually had an Android Gradle plugin applied, because that created the needed "aar" attributes that were needed for consumption. Previously I had both dependencies applied to a pure JVM module, which worked with 2.2.2, but stopped in 2.3.0 as you showed here.
Upvotes: 4