1
我完全陌生的dagger2希望能帮助我:)匕首2错误:不能没有@Inject构造函数或从@提供提供注解方法
我实现一个小的演示,但我conguiente的以下错误: 错误:(20,10)错误:无法使用@Inject构建器或者从@或@ Produces提供 - 带注释的方法提供android.net.ConnectivityManager。 com.edwin.dagger1.MainActivity.connectivityManager [类型的注入字段:android.net.ConnectivityManager connectivityManager]
public class Dagger2Application extends Application {
private SystemComponent systemComponent;
@Override
public void onCreate() {
super.onCreate();
systemComponent = DaggerSystemComponent.builder()
.systemModule(new SystemModule(this))
.build();
}
public SystemComponent getSystemComponent() {
return systemComponent;
}
}
@Module
public class SystemModule {
private final Application application;
public SystemModule(Application application) {
this.application = application;
}
@Provides
@Singleton
public Context provideContext(){
return application;
@Singleton
@Component(modules = SystemModule.class)
public interface SystemComponent {
void inject(MainActivity activity);
}
public class MainActivity extends AppCompatActivity {
@Inject
ConnectivityManager connectivityManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Dagger2Application dagger2Application=(Dagger2Application)getApplication();
dagger2Application.getSystemComponent().inject(this);
boolean activeNetworkMetered = connectivityManager.isActiveNetworkMetered();
Log.d("Network is metered? " , activeNetworkMetered+"");
}
}