Dagger 组件未在我的 android 工作室中使用并导致我构建错误?

Dagger Component is not sugested in my android studio and causing me building errors?

希望你做得很好,我正在尝试使用 Retrofit、Dagger 等创建一个简单的 CRUD ..

我创建了我的 ApiComponent :

    @Component(modules = {ApiModule.class})
    public interface ContractApiComponent {

        public void inject(ContractsListViewModel contractListViewModel);
        public void inject(ContractService contractService);

    }

我多次重建我的项目。

我尝试在我的服务中调用 Dagger 组件,但没有被建议:

    public class ContractService {

        public static ContractService instance;

        @Inject
        public ContractApi api;

        public ContractService(){
            DaggerContractApiComponent.create().inject(this);
        }
    }

这是我的 ApiModule:

@Module
public class ApiModule {

    public static String BASE_URL = "http://localhost/newconceptsphp";

    @Provides
    public ContractApi provideContractApi(){
        return new Retrofit.Builder().baseUrl(BASE_URL)
                .addConverterFactory(GsonConverterFactory.create())
                .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
                .build()
                .create(ContractApi.class);
    }

}

我正在输入Dagger,我的DaggerContractApiCompnent已经被提示,这意味着它被系统知道了,然后我尝试运行我的项目终于突然变红了,我的匕首没有在我的编辑中不再为人所知。

我正在尝试重建和重建,但似乎无法解决问题。

如果您以前遇到过这种情况,我们将不胜感激。

这很正常,您在 ApiModule 中缺少一个方法,返回带有 Provides 注释的服务。

@模块 public class ApiModule {

  public static String BASE_URL = "http://localhost/newconceptsphp";

  @Provides
  public ContractApi provideContractApi(){
    return new Retrofit.Builder().baseUrl(BASE_URL)
            .addConverterFactory(GsonConverterFactory.create())
            .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
            .build()
            .create(ContractApi.class);
  }

  @Provides
  public ContractService provideContractService(){
    return ContractService.getInstance();
  }

 }

添加它,我认为它会起作用。