我正在尝试一个示例项目来学习MvRx。然而,似乎有些不对劲。Android Studio 无法activityViewModel
自动查找和导入。
1)我试图通过写它的包名来手动导入它,但它仍然是灰色的。
2) 从 Gradle 选项卡中,我选择了我的根项目并单击Refresh Gradle Project
以刷新所有依赖项。它也没有帮助。
问题是什么?
如果即使activityViewModel()
在片段中使用时也有人遇到相同的错误,则此答案可能会有所帮助。
就我而言,我使用的是activityViewModel()
内部片段。我仍然得到这个以及许多其他错误。最后我发现 mvrx 现在正在使用kotlin coroutines
,并且所有对 rxjava 的依赖都在2.0.0-beta1
.
为了解决这个使用
implementation "com.airbnb.android:mvrx-rxjava2:2.0.0-beta3"
代替
implementation "com.airbnb.android:mvrx:2.0.0-beta3"
在您的build.gradle
.
因为你还有其他 com.airbnb.mvrx。正确解析的引用,这意味着您确实有对 com.airbnb.mvrx 库的引用。但是,您引用的库版本可能与示例的原始作者不同。在你的 build.gradle 文件中查找依赖项,看看你是否在其中引用了库。如果是这样,请将其版本与示例中的版本进行比较,如果不同,则修改您对示例版本号的引用。如果不是,则使用该对象所在的库的适当版本号添加对库的引用。
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.airbnb.mvrx:mvrx:12.0.1'
}
您的功能代码必须在 Fragment(扩展 BaseMvRxFragment)中,而不是在 Activity 中。