错误如下
错误:(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;
}
}
答案 0 :(得分:0)
该提供者看来:
@Provides
@Singleton
LoopJNetworkManager provideNetworkManager(LoopJNetworkManager loopJNetworkManager) {
return loopJNetworkManager;
}
...取决于要生成的类型的实例,而该类型不能满足。