安卓系统.更新androidx.lifecycle:lifecycle-libs到2.5.0版本后,在我的ViewMod



上次将androidx.lifecycle:lifecycle更新到最新的2.5.0版本后,我无法构建我的项目。我在ViewModelFactory 中遇到此错误

Inheritance from an interface with '@JvmDefault' members is only allowed with -Xjvm-default option

这是我的一家工厂:

class BookingViewModelFactory(private val api: ApiClient, private val localStorage: SharedPreferencesRepository) : ViewModelProvider.Factory {
override fun <T : ViewModel> create(modelClass: Class<T>): T {
if (modelClass.isAssignableFrom(BookingViewModel::class.java)) {
@Suppress("UNCHECKED_CAST")
return BookingViewModel(api, localStorage) as T
}
throw IllegalArgumentException("Unknown ViewModel class")
}
}

我甚至试图重新采用新的工厂方法,但错误仍然存在。

经过研究,并没有发现任何人面临这样的问题,所以我想我犯了一些愚蠢的错误。有什么想法吗?

我在issue Tracker上发现了关于这个问题的讨论,状态为:

不会修复(预期行为(

从kotlin 1.6.20开始,这个问题不会出现。然而,如果有人像我一样面临这个问题,你可以通过将这个部分添加到你的build.gradle:中来解决它

android {
...
kotlinOptions {
...
freeCompilerArgs += [
"-Xjvm-default=all",
]
}
}

以下是的实际讨论

https://issuetracker.google.com/issues/217593040

最新更新