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();
}
}
添加它,我认为它会起作用。
希望你做得很好,我正在尝试使用 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();
}
}
添加它,我认为它会起作用。