为什么显示此错误在dagger 2中发现依赖循环



错误如下

错误:(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.getRequestHandlerHelp((

@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;
}
}

看起来这个提供者:

@Provides
@Singleton
LoopJNetworkManager provideNetworkManager(LoopJNetworkManager loopJNetworkManager) {
return loopJNetworkManager;
}

取决于它要生成的类型的实例,而这是无法满足的。

最新更新