上次将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