Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如果没有@Providers注释方法,则无法提供Dagger/MissingBinding_Android_Dagger 2_Dagger - Fatal编程技术网

Android 如果没有@Providers注释方法,则无法提供Dagger/MissingBinding

Android 如果没有@Providers注释方法,则无法提供Dagger/MissingBinding,android,dagger-2,dagger,Android,Dagger 2,Dagger,我在从dagger2 2.16版本构建到2.23.2版本时遇到了一个例外。 它在2.16中启动并运行。我没有修改任何代码。升级到2.23.2后,无法生成。 我不确定问题出在哪里,所以我请大家帮忙。 多谢各位 模块 @Module public class BaseModule { private ConfigBuilder configBuilder; public BaseModule(@Nullable ConfigBuilder configBuilder) {

我在从dagger2 2.16版本构建到2.23.2版本时遇到了一个例外。 它在2.16中启动并运行。我没有修改任何代码。升级到2.23.2后,无法生成。 我不确定问题出在哪里,所以我请大家帮忙。 多谢各位

模块

@Module
public class BaseModule {

    private ConfigBuilder configBuilder;

    public BaseModule(@Nullable ConfigBuilder configBuilder) {
        this.configBuilder = configBuilder;
    }

    @Singleton
    @Provides
    public Gson provideGson() {
        GsonBuilder builder = new GsonBuilder();
        if (configBuilder != null) {
            configBuilder.buildGson(builder);
        }
        return builder.create();
    }

    @Singleton
    @Provides
    public OkHttpClient provideOkHttpClient() {
        OkHttpClient.Builder builder = new OkHttpClient.Builder();
        if (configBuilder != null) {
            configBuilder.buildOkHttp(builder);
        }
        builder.addInterceptor(new EncryptInterceptor());
        if (BuildConfig.DEBUG) {
            HttpLoggingInterceptor loggingInterceptor = new HttpLoggingInterceptor();
            loggingInterceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
            builder.addInterceptor(loggingInterceptor);
        }
        return builder.build();
    }

    @Singleton
    @Provides
    public Retrofit provideRetrofit(OkHttpClient okHttpClient, Gson gson) {
        Retrofit.Builder builder = new Retrofit.Builder()
                .client(okHttpClient);
        if (configBuilder != null) {
            configBuilder.buildRetrofit(builder);
        }
        builder.addConverterFactory(GsonWrapperConverterFactory.create(gson))
                .addCallAdapterFactory(RxJava2CallAdapterFactory.create());
        return builder.build();
    }

    @Singleton
    @Provides
    public SharedPreferencesPlus provideSharedPreferencesPlus(Application application, Gson gson) {
        return SharedPreferencesPlus.createDefault(application, gson);
    }
@模块
接口活动模块{
@活动范围
@贡献Android注射器
main活动main();
组成部分

@Singleton
@组件(模块={BaseModule.class,AndroidSupportInjectionModule.class})
公共接口基组件{
应用程序提供应用程序();
SharedPreferencesPlus提供共享首选项SPlus();
Gson-provideGson();
OkHttpClient provideOkHttpClient();
改装ProviderRetrofit();
@组件生成器
界面生成器{
@装订
建造商申请书(申请书);
生成器AppModule(BaseModule BaseModule);
BaseComponent build();
}
例外情况: [Dagger/MissingBinding]java.util.Map>>如果没有@Provides注释方法,则无法提供

java.util.Map>>在dagger.android.DispatchingAndroidInjector(…,injectorFactoriesWithStringKeys)处注入

dagger.android.DispatchingAndroid注射器在 org.pp.va.video.app.AppContext.serviceInjector

org.pp.va.video.app.AppContext被注入 org.pp.va.video.di.AppComponent.inject(org.pp.va.video.app.AppContext)

还请访问:
dagger.android.DispatchingAndroidInjector(…,injectorFactoriesWithStringKeys)

我发现从2.16到2.17开始出现问题。 我观察到错误,因为在AppComponent中引入了AndroidSupportInjectModule。我曾经在BaseComponent中引入AndroidSupportInjectModule,然后是AppComponent依赖的BaseComponent。现在它无法工作。我从BaseComponent中删除了AndroidSupportInjectModule的引入,并引入了AndroidSupportInjectModuleAppComponent中的idSupportInjectionModule解决了我的问题

我目前的代码如下:

@ApplicationScope
@Component(modules = {
        ActivityModule.class,
        ViewModelModule.class,
        DataModule.class, AndroidSupportInjectionModule.class}, dependencies = BaseComponent.class)
public interface AppComponent

我发现从2.16开始到2.17开始出现问题。 我观察到错误,因为在AppComponent中引入了AndroidSupportInjectModule。我曾经在BaseComponent中引入AndroidSupportInjectModule,然后是AppComponent依赖的BaseComponent。现在它无法工作。我从BaseComponent中删除了AndroidSupportInjectModule的引入,并引入了AndroidSupportInjectModuleAppComponent中的idSupportInjectionModule解决了我的问题

我目前的代码如下:

@ApplicationScope
@Component(modules = {
        ActivityModule.class,
        ViewModelModule.class,
        DataModule.class, AndroidSupportInjectionModule.class}, dependencies = BaseComponent.class)
public interface AppComponent
@ApplicationScope
@Component(modules = {
        ActivityModule.class,
        ViewModelModule.class,
        DataModule.class, AndroidSupportInjectionModule.class}, dependencies = BaseComponent.class)
public interface AppComponent
@Singleton
@Component(modules = {BaseModule.class})
public interface BaseComponent {