Mar*_*GGR 189 dependencies android build.gradle
当我尝试运行模拟器时出现这些错误
在模块jetified-lifecycle-viewmodel-ktx-2.3.1-runtime (androidx.lifecycle:lifecycle-viewmodel-ktx:2.3.1)和lifecycle-viewmodel-2.4.0-runtime (androidx)中发现重复的类androidx.lifecycle.ViewModelLazy .lifecycle:lifecycle-viewmodel:2.4.0)
在模块jetified-lifecycle-viewmodel-ktx-2.3.1-runtime (androidx.lifecycle:lifecycle-viewmodel-ktx:2.3.1)和lifecycle-viewmodel-2.4.0-runtime (androidx)中发现重复的类androidx.lifecycle.ViewModelProviderKt .lifecycle:lifecycle-viewmodel:2.4.0)
在模块 jetified-lifecycle-viewmodel-ktx-2.3.1-runtime (androidx.lifecycle:lifecycle-viewmodel-ktx:2.3.1) 和 Lifecycle-viewmodel-2.4.0-runtime (androidx) 中发现重复的类 androidx.lifecycle.ViewTreeViewModelKt .lifecycle:lifecycle-viewmodel:2.4.0)
注意:这不是 Android 模拟器特有的问题,而是 gradle 构建的问题。
l33*_*33t 220
最有可能的是,您的依赖项之一使用kotlin该viewmodel库的版本,而您的代码使用该java版本。
指定两者以强制所有依赖项使用最新版本:
def lifecycle_version = "2.4.0"
implementation "androidx.lifecycle:lifecycle-viewmodel:$lifecycle_version"
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_version"
Run Code Online (Sandbox Code Playgroud)
小智 148
我遇到了同样的问题,我只添加一行代码就解决了
implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.4.0'
Run Code Online (Sandbox Code Playgroud)
A D*_*oid 47
问题:当我将appcompat依赖项更新为1.5.1.
解决方案:我将appcompat依赖项更新为1.6.1.
*更高版本也应该可以工作。
// Pick one:
// Kotlin
implementation("androidx.appcompat:appcompat:1.6.1")
// Groovy
implementation "androidx.appcompat:appcompat:1.6.1"
Run Code Online (Sandbox Code Playgroud)
原因:这之所以有效,是因为1.6.0-beta01.
1.6.0 -beta01 发行说明的“错误修复”部分说明了以下内容:
AppCompat现在明确取决于Lifecycle2.5.1和SavedState1.2.0。( I7e3e2 )
Ale*_*mcf 27
我认为消除重复的类比添加新的类更好,所以我将在这里发布我对此问题的解决方案:
configurations {
all {
exclude group: 'androidx.lifecycle', module: 'lifecycle-viewmodel-ktx'
}
}
Run Code Online (Sandbox Code Playgroud)
这些代码行需要添加到项目级别的 build.gradle 文件中 - 并且构建错误将随着浪费的内存一起消失(有点,但仍然)。
奇怪且难以理解的行为。我在将 Kotlin 库添加到项目后得到了它,后来决定用 Java 版本替换它。如果您转到 .gradle 文件夹,您可以在那里找到它,但我不确定从那里删除它是否是一个好主意,因为它可能会在其他库中使用。奇怪的是,gradle 或 AndroidStudio 并没有自动解决这个问题,因为 build.gradle 文件中只指定了 Java 的依赖项。
小智 13
对于使用 compose 的任何人,您只需添加
implementation "androidx.lifecycle:lifecycle-viewmodel-compose:2.5.1"
Run Code Online (Sandbox Code Playgroud)
小智 9
它帮助我按照此线程中的建议将 appcompat 从 1.5.0 恢复到 1.4.2:在模块生命周期-viewmodel-2.5.0-runtime 中发现重复的类 androidx.lifecycle.ViewModelLazy
小智 8
按照 l33t 的指示,我添加了
def lifecycle_version = "2.5.1"
implementation "androidx.lifecycle:lifecycle-viewmodel:$lifecycle_version"
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_version"
Run Code Online (Sandbox Code Playgroud)
但将这些行放入错误的文件中并得到
找不到参数的方法实现()...
解决方案:确保您在 android/app/build.gradle 中添加这些依赖项,而不是 android/build.gradle 中。看这里。
I get the same error, any answers solved my issue. The key point is here to solve the error (preferences 1.2.0 in my project -> add exclude group).
def preference_version = "1.2.0"
implementation ("androidx.preference:preference:$preference_version"){
exclude group: 'androidx.lifecycle', module:'lifecycle-viewmodel'
exclude group: 'androidx.lifecycle', module:'lifecycle-viewmodel-ktx'
}
Run Code Online (Sandbox Code Playgroud)
Then use 2.5.1 version for lifecycle dependencies.
def lifecycle_version = "2.5.1"
// ViewModel
implementation "androidx.lifecycle:lifecycle-viewmodel:$lifecycle_version"
// LiveData
implementation "androidx.lifecycle:lifecycle-livedata:$lifecycle_version"
// Lifecycles only (without ViewModel or LiveData)
implementation "androidx.lifecycle:lifecycle-runtime:$lifecycle_version"
// https://developer.android.com/jetpack/androidx/releases/lifecycle
implementation "androidx.lifecycle:lifecycle-viewmodel-savedstate:$lifecycle_version"
Run Code Online (Sandbox Code Playgroud)
This is working fine, i hope that it will help some people !
虽然其中许多答案都可行,但有一种更好的方法来设置传递依赖项版本,而不是将包包含为直接依赖项。
constraints {
implementation('androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1') {
because 'insert explanation here'
}
}
Run Code Online (Sandbox Code Playgroud)
这是细分https://docs.gradle.org/current/userguide/dependency_constraints.html
| 归档时间: |
|
| 查看次数: |
106949 次 |
| 最近记录: |