Dagger-Hilt 是一个用于依赖注入的库,它简化了 Android 应用程序中的依赖注入过程。@ViewModelInject
是 Dagger-Hilt 提供的一个注解,用于将 ViewModel 注入到其他组件中,如 Activity、Fragment 或其他 ViewModel 中。
@ViewModelInject
没有注入 MyViewModel
并崩溃原因:
build.gradle
文件中正确配置了 Hilt 的注解处理器。@HiltAndroidApp
注解。@ViewModelInject
:确保在 ViewModel 的构造函数上使用了 @ViewModelInject
注解。解决方法:
@ViewModelInject
:@ViewModelInject
:假设我们有一个 SomeDependency
类和一个 MyViewModel
类:
public class SomeDependency {
// ...
}
@HiltViewModel
public class MyViewModel extends ViewModel {
private final SomeDependency someDependency;
@ViewModelInject
public MyViewModel(SomeDependency someDependency) {
this.someDependency = someDependency;
}
// ...
}
在 Activity 中注入 MyViewModel
:
@AndroidEntryPoint
public class MyActivity extends AppCompatActivity {
@Inject
MyViewModel myViewModel;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my);
// 使用 myViewModel
}
}
通过以上步骤,你应该能够解决 @ViewModelInject
没有注入 MyViewModel
并崩溃的问题。
领取专属 10元无门槛券
手把手带您无忧上云