【问题标题】:Can't import ViewModel while using Koin library使用 Koin 库时无法导入 ViewModel
【发布时间】:2019-01-14 12:48:03
【问题描述】:

之后,使用无效缓存重新启动 Android Studio,并清理 + 重建构建,我仍然无法从 Koin 库导入 ViewModel 类。甚至手动强制 import org.koin.android.viewmodel.ext.android.viewModel 导入。

app/build.gradle

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])

    implementation 'com.android.support:appcompat-v7:28.0.0'

    implementation "org.koin:koin-android:1.0.2"
    implementation 'org.koin:koin-android-viewmodel:1.0.2'
    ...
}

有同样问题的人吗?

【问题讨论】:

    标签: android android-studio gradle koin


    【解决方案1】:

    您的 Activity 必须扩展 AppCompatActivity 而不是 Activity。

    如果您想将 koin 与活动、片段或服务一起使用,您的类必须实现 KoinComponent。

    【讨论】:

      【解决方案2】:

      我需要使用 AppCompatActivity 而不是 Activity

      【讨论】:

        【解决方案3】:

        我遇到了同样的问题(Activity 扩展 AppCompatActivity 时也是如此),但就我而言,解决方案是使用稳定版本的 core-ktx:

        // Stable version - Works fine with koin and koin's viewModel
        implementation "androidx.core:core-ktx:1.0.1"
        
        // Alpha version - When in use viewModel is not found
        implementation 'androidx.core:core-ktx:1.1.0-alpha03'
        

        【讨论】:

        • 我遇到了同样的问题,并且使用稳定版有效
        【解决方案4】:

        viewmodels 方法不需要 Koin 库依赖项。你只需要确保你有这些依赖:

         implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.3.0"
            implementation "androidx.lifecycle:lifecycle-livedata-ktx:2.3.0"
            implementation "androidx.lifecycle:lifecycle-extensions:2.2.0"
            kapt "androidx.lifecycle:lifecycle-compiler:2.2.0"
            implementation "androidx.activity:activity-ktx:1.1.0"
        

        请按照此 android studio 指南了解更多信息:https://androideveryday.com/2020/03/07/android-studio-guide-to-viewmodel-livedata-2020-edition/

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-12-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多