1
私はうまくいけば、私を助けてdagger2する全く新しいです:)ダガー2エラー:@Injectコンストラクタなしまたは@から提供することはできませんアノテート提供方法
私は小さなデモを実施していますが、私はconguienteよ次のエラーが発生しました: エラー:(20、10)エラー:android.net.ConnectivityManagerは、@Injectビルダーなしで、または@または@ Produces提供アノテーション付きメソッドからは提供できません。 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+"");
}
}