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+"");
}
}