Have you tried to implement module1 in app? Since dagger auto generate code to work I suppose that when app generate the DaggerModule2Component, it needs to see also module1 to generate the underneath code. With your gradle settings app implements module2 but can't see module1 because implementation doesn't permit transitive dependency