I use dagger2, AndroidAnnotations and ButterKnife (for adapters) all together, and they work fine. One difference from the note from dagger1 is that you must introduce each specific class (and not just the parent activity) that @Inject declares . But you do not need to enter classes created by AndroidAnnotations, because the fields you enter are not declared in the generated classes.