You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Dagger出现No injector factory bound for Class报错应用崩溃求助

核心错误定位

本次崩溃的核心触发错误为:

Caused by: java.lang.IllegalArgumentException: No injector factory bound for Class<com.asit1.readyapp.resturants.S1_RestaurantsList>

其余日志均为安卓模拟器运行时的系统报错,和本次应用崩溃无关联。

触发原因

该错误是Dagger Android框架的典型配置错误,本质是框架找不到com.asit1.readyapp.resturants.S1_RestaurantsList对应的注入器工厂,常见触发场景如下:

  • 未在Dagger的注入绑定模块中为S1_RestaurantsListActivity声明绑定规则
  • 包含Activity绑定规则的模块,未被添加到AppComponent的模块依赖树中
  • 绑定时填写的Activity全限定类名和实际类名不一致,存在拼写错误
  • 应用自定义Application未正确实现HasAndroidInjector接口,注入器初始化失败
排查步骤
  1. 检查项目中用于绑定Android组件的Dagger模块(带@Module注解的抽象类),确认是否存在S1_RestaurantsList的绑定声明,标准写法如下:
@Module
public abstract class ActivityBindingModule {
    @ContributesAndroidInjector
    abstract S1_RestaurantsList bindS1RestaurantsListInjector();
    
    // 其他Activity的绑定声明
}
  1. 检查AppComponent的注解配置,确认上述Activity绑定模块已被加入modules列表,同时必须引入官方的AndroidInjectionModule:
@Singleton
@Component(modules = {
        AndroidInjectionModule.class,
        ActivityBindingModule.class,
        // 其他业务模块
})
public interface AppComponent extends AndroidInjector<MyApplication> {
}
  1. 检查自定义Application类的实现,确认已正确实现HasAndroidInjector接口,且注入器初始化逻辑正确:
public class MyApplication extends Application implements HasAndroidInjector {
    @Inject
    DispatchingAndroidInjector<Object> androidInjector;

    @Override
    public void onCreate() {
        super.onCreate();
        // 初始化AppComponent并注入
        DaggerAppComponent.builder()
                .application(this)
                .build()
                .inject(this);
    }

    @Override
    public AndroidInjector<Object> androidInjector() {
        return androidInjector;
    }
}
  1. 核对绑定声明中的类和实际S1_RestaurantsList的全限定类名是否完全一致,注意包名拼写、大小写是否匹配。
修复方法

按照上述排查步骤逐一修正配置错误后,重新编译运行项目即可解决该崩溃问题。如果项目使用Kotlin进行开发,配置逻辑完全一致,仅语法有差异。


内容的提问来源于stack exchange,提问作者Engi.Ahmed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 21:24:01