[英]Why this error showFound a dependency cycle in dagger 2
Error as below 错误如下
Error:(32, 26) error: Found a dependency cycle: com.d2u.android.data.network.LoopJNetworkManager is injected at com.d2u.android.di.module.ApplicationModule.provideNetworkManager(loopJNetworkManager) com.d2u.android.data.network.LoopJNetworkManager is injected at com.d2u.android.data.network.LoopzPostRequestHandler.(…, loopJNetworkManager) com.d2u.android.data.network.LoopzPostRequestHandler is injected at com.d2u.android.di.module.ApplicationModule.provideLoopzPostHandler(loopzPostRequestHandler) com.d2u.android.data.network.RequestHandlerHelper is provided at com.d2u.android.di.component.ApplicationComponent.getRequestHandlerHelper()
错误:(32、26)错误:找到了一个依赖周期:com.d2u.android.data.network.LoopJNetworkManager注入了com.d2u.android.di.module.ApplicationModule.provideNetworkManager(loopJNetworkManager)com.d2u.android。 data.network.LoopJNetworkManager注入com.d2u.android.data.network.LoopzPostRequestHandler。(…,loopJNetworkManager)com.d2u.android.data.network.LoopzPostRequestHandler注入com.d2u.android.di.module.ApplicationModule .provideLoopzPostHandler(loopzPostRequestHandler)com.d2u.android.data.network.RequestHandlerHelper在com.d2u.android.di.component.ApplicationComponent.getRequestHandlerHelper()中提供
@PerActivity
public interface RequestHandlerHelper {
LoopzPostRequestHandler getPostHandler();
}``
@Singleton
public class LoopzPostRequestHandler implements RequestHandlerHelper {
private final Context context;
LoopJNetworkManager loopJNetworkManager;
@Inject
LoopzPostRequestHandler(@ApplicationContext Context context, LoopJNetworkManager loopJNetworkManager) {
this.context = context;
this.loopJNetworkManager = loopJNetworkManager;
}
public void hitApiPostMethod(final String requestUrl, final JSONObject requestParams, final ApiCallbackManager onUpdateResponse, final int requestCode) {
if (requestParams != null)
Logger.LogError("REQUEST_" + requestCode, requestParams.toString());
StringEntity stringEntity = null;
try {
stringEntity = new StringEntity(requestParams.toString());
} catch (Exception e) {
e.printStackTrace();
}
AsyncHttpClient client = loopJNetworkManager.getAsyncHttpClient();
Logger.LogError("REQUEST_URL...", ApiRequestConstant.BASE_URL + requestUrl);
client.post(context, ApiRequestConstant.BASE_URL + requestUrl, stringEntity, "application/json", new JsonHttpResponseHandler() {
@Override
public void onSuccess(int statusCode, Header[] headers, JSONObject response) {
super.onSuccess(statusCode, headers, response);
Logger.LogError("response...", response.toString());
Logger.LogError("Header...", " " + headers);
}
@Override
public void onFailure(int statusCode, Header[] headers, String response, Throwable throwable) {
super.onFailure(statusCode, headers, response, throwable);
}
@Override
public void onFailure(int statusCode, Header[] headers, Throwable throwable, JSONObject errorResponse) {
super.onFailure(statusCode, headers, throwable, errorResponse);
}
});
}
@Override
public LoopzPostRequestHandler getPostHandler() {
return this;
}
}
@Singleton
@Component(modules = ApplicationModule.class)
public interface ApplicationComponent {
void inject(D2UApplication app);
@ApplicationContext
Context context();
Application application();
PreferenceHelper getPreferenceHelper();
// LoopJNetworkManager getNetWorkManager();
RequestHandlerHelper getRequestHandlerHelper();
}
@Module
public class ApplicationModule {
private final Application mApplication;
public ApplicationModule(Application application) {
mApplication = application;
}
@Provides
@ApplicationContext
Context provideContext() {
return mApplication;
}
@Provides
Application provideApplication() {
return mApplication;
}
// @Provides
// @DatabaseInfo
// String provideDatabaseName() {
// return AppConstants.DB_NAME;
// }
//
// @Provides
// @ApiInfo
// String provideApiKey() {
// return BuildConfig.API_KEY;
// }
// @Provides
// @PreferenceInfo
// String providePreferenceName() {
// return PreferenceConstant.PREF_NAME;
// }
//
//
//
@Provides
@Singleton
PreferenceHelper providePreferencesHelper(AppPreferenceHelper appPreferencesHelper) {
return appPreferencesHelper;
}
@Provides
@Singleton
LoopJNetworkManager provideNetworkManager(LoopJNetworkManager loopJNetworkManager) {
return loopJNetworkManager;
}
@Provides
@Singleton
RequestHandlerHelper provideLoopzPostHandler(LoopzPostRequestHandler loopzPostRequestHandler) {
return loopzPostRequestHandler;
}
}
it would appear that this provider: 看来该提供者:
@Provides
@Singleton
LoopJNetworkManager provideNetworkManager(LoopJNetworkManager loopJNetworkManager) {
return loopJNetworkManager;
}
...depends on an instance of the type it's meant to produce, which cannot be satisfied. ...取决于它要产生的类型的实例,这是不能满足的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.