由于接收器类型不匹配,以下候选项都不适用



我已经尝试了我能找到的每一个咒语,但仍然有一个问题使用viewModel

下面是问题代码:

class MainActivity: FlutterActivity(), OnSneakerClickListener, OnSneakerDismissListener {
private val httpclient = OkHttpClient()
val stripe = Stripe(this, "pk_test_yadayadayada")
private val viewModel: StripeIntentViewModel by viewModels() //<--dragons be here

当我手动输入"import androidx.activity. viewmodel "它将其显示为"未使用的导入指令"。

我的模块构建。Gradle文件看起来像这样:

plugins {
id 'com.android.application'
id 'kotlin-android'
id 'checkstyle'
id 'org.jetbrains.kotlin.plugin.parcelize'
}
...
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = "1.8"
}
...
implementation "androidx.lifecycle:lifecycle-livedata-ktx:$androidLifecycleVersion"
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$androidLifecycleVersion"
implementation "com.google.android.material:material:$materialVersion"
implementation "androidx.fragment:fragment-ktx:$fragmentVersion"
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
implementation "androidx.activity:activity-ktx:1.1.0"
implementation "androidx.fragment:fragment-ktx:1.2.5"
implementation "android.arch.lifecycle:extensions:1.1.1"
implementation "androidx.lifecycle:lifecycle-extensions:2.2.0"
implementation "androidx.activity:activity-ktx:1.2.0-rc01"

缺少什么吗?

by viewModels()属性扩展是androidx.activity.ComponentActivity的扩展,它提供了对ViewModels的支持(通过ViewModelStoreOwner接口)。

FlutterActivity,根据它的文档,只扩展android.app.Activity而不扩展ComponentActivity。因此,不能从FlutterActivity中使用by viewModels()

您可以使用FlutterFragmentActivity,它扩展了FragmentActivity(它本身扩展了ComponentActivity)。

最新更新