2

私は何かが欠けていると思います。次のエラーが表示されます。

PostsVM cannot be provided without an @Inject constructor or from an 
@Provides-annotated method.

クラスを次のように想定します。

@Module
public class AppModule {
    private final Application mApplication;

    @Singleton
    @Provides
    ViewModel provideListViewModel() {
        return new PostsVM();
    }
}

そしてクラスPostVM

@Singleton
public class PostsVM extends ViewModel {

    public boolean get(){
        return true;
    }
}

そしてコンポーネント:

@Singleton
@Component(modules = AppModule.class)
public interface AppComponent {

    void inject(Global global);

    void inject(MainActivity mainActivity);

    @Architecture.ApplicationContext
    Context getContext();

    Application getApplication();
}

そして活動中:

@Inject
public         ViewModelProvider.Factory factory;

@Override
protected void onCreate(Bundle savedInstanceState) {
    InjectorClass.inject(this);

ご覧のとおり、PostVM クラスの例は何にも依存していません。なぜ @inject コンストラクターが必要なのですか?

4

1 に答える 1