AndroidX KTX 导航片段和导航 ui 的版本更新从版本 2.2.2 到 2.3.0 失败
Version update of AndroidX KTX navigation fragment and navigation ui fails from version 2.2.2 to 2.3.0
我正在尝试将我的应用程序中的以下依赖项从版本 2.2.2 更新到 2.3.0
androidx.navigation:navigation-fragment-ktx
androidx.navigation:navigation-ui-ktx
当我尝试使用新的依赖版本构建应用程序时,我收到以下错误:
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')
当我查看我注意到的工件时,从版本 2.3.0 开始,现在有一个额外的模块文件,其中包含这个“releaseApiPublication”变体。
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"
}
]
}
]
}
这是否意味着我必须更改我包含这些依赖项的方式,或者错误是否与这个新模块文件无关?
对我来说,当我将这些 Android-specific 依赖项拉到实际上应用了 Android Gradle 插件的 Gradle 模块时,问题就解决了,因为它创建了消费所需的所需“aar”属性。以前我将这两个依赖项应用于纯 JVM 模块,该模块适用于 2.2.2,但如您在此处所示,在 2.3.0 中停止。
我正在尝试将我的应用程序中的以下依赖项从版本 2.2.2 更新到 2.3.0
androidx.navigation:navigation-fragment-ktx
androidx.navigation:navigation-ui-ktx
当我尝试使用新的依赖版本构建应用程序时,我收到以下错误:
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')
当我查看我注意到的工件时,从版本 2.3.0 开始,现在有一个额外的模块文件,其中包含这个“releaseApiPublication”变体。
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"
}
]
}
]
}
这是否意味着我必须更改我包含这些依赖项的方式,或者错误是否与这个新模块文件无关?
对我来说,当我将这些 Android-specific 依赖项拉到实际上应用了 Android Gradle 插件的 Gradle 模块时,问题就解决了,因为它创建了消费所需的所需“aar”属性。以前我将这两个依赖项应用于纯 JVM 模块,该模块适用于 2.2.2,但如您在此处所示,在 2.3.0 中停止。