Android 根据viewModels,由于接收器类型不匹配,以下候选项均不适用

Android 根据viewModels,由于接收器类型不匹配,以下候选项均不适用,android,kotlin,android-viewmodel,Android,Kotlin,Android Viewmodel,我已经尝试了我能找到的每一个咒语,但在使用by viewModel时仍然存在问题 以下是相关代码: class MainActivity: FlutterActivity(), OnSneakerClickListener, OnSneakerDismissListener { private val httpclient = OkHttpClient() val stripe = Stripe(this, "pk_test_yadayadayada") private va

我已经尝试了我能找到的每一个咒语,但在使用by 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
缺少什么吗?

是上的一个扩展,它提供了对ViewModels的支持(通过
ViewModelStoreOwner
界面)

Activity
,根据its,仅扩展
android.app.Activity
,不扩展
ComponentActivity
。因此,无法从
活动中使用
by viewModels()


您可以改为使用,它扩展了
FragmentActivity
(它本身扩展了
ComponentActivity
),如下所示。

谢谢!我怀疑这可能与弗利特有关。我求助于“老办法”做:private val model:StripeIntentViewModel=ViewModelProvider(instance).get(StripeIntentViewModel::class.java),但可能会转换成这个。
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"