小编Diy*_*hat的帖子

如果没有 @Inject 构造函数或 @Provides 注释的方法,则无法提供 okhttp3.Cache

我正在使用 Android Dagger2,但收到以下错误。\n我的 AppModule 类是:

\n\n
@Module\npublic class AppModule {\n\nRetrofitExample retrofitExample;\n\nAppModule(RetrofitExample retrofitExample) {\n\n    this.retrofitExample = retrofitExample;\n\n}\n\n@Singleton\n@Provides\nRetrofitExample provideApplication() {\n    return retrofitExample;\n}\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

我的API模块类

\n\n
@Module\nclass ApiModule {\n\nString BaseUrl;\n\nprivate  MainActivity  mainActivity;\n\nApiModule(String baseUrl) {\n    this.BaseUrl = baseUrl;\n}\n\n\npublic ApiModule(MainActivity downloadFileView) {\n    this.mainActivity = downloadFileView;\n}\n@Provides\n@Singleton\nGson provideGson() {\n    GsonBuilder gsonBuilder = new GsonBuilder();\n    gsonBuilder.setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES);\n    return gsonBuilder.create();\n}\n\n@Provides\n@Singleton\nOkHttpClient provideOkhttpClient(Cache cache) {\n    OkHttpClient.Builder client = new OkHttpClient.Builder();\n    client.cache(cache);\n    return client.build();\n}\n\n@Singleton\n@Provides\nRetrofit providesRetrofit(Gson gson, OkHttpClient okHttpClient) {\n    return new Retrofit.Builder()\n            .addConverterFactory(GsonConverterFactory.create(gson))\n            .baseUrl(BaseUrl)\n            .client(okHttpClient)\n            .build();\n}\n\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

我的 API 组件类。

\n\n
void inject(MainActivity …
Run Code Online (Sandbox Code Playgroud)

android dependency-injection dagger-2 android-mvp

1
推荐指数
1
解决办法
1428
查看次数