I do a test project using Dagger2 . I get the error
Error: Execution failed for task ': app: compileDebugJavaWithJavac'. java.lang. NoSuchMethodError: com.google.common.collect.ImmutableSetMultimap $ Builder.putAll (Ljava / lang / Iterable;) Lcom / google / common / collect / ImmutableSetMultimap $ Builder;
I can not understand what's wrong. The search for a solution so far has not been successful.
Here is the project code:
App:
public class App extends Application { private static AppComponent component; public static AppComponent getComponent() { return component; } @Override public void onCreate() { super.onCreate(); component = buildComponent(); } protected AppComponent buildComponent() { return DaggerAppComponent.builder() .build(); } } AppComponent:
@Singleton @Component(modules = {NetWorkApiModule.class}) public interface AppComponent { void inject(MainActivity mainActivity); } NetWorkApiModule:
@Module public class NetWorkApiModule { @Provides @Singleton public NetWorkApi getNetwork(){ return new NetWorkApi(); } } MainActivity:
public class MainActivity extends AppCompatActivity { @Inject NetWorkApi mNetWorkApi; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); App.getComponent().inject(this); boolean injected = mNetWorkApi != null; ((TextView)findViewById(R.id.text)).setText(String.valueOf(injected)); } }