मैं डैगर 2 के लिए काफी नया हूं। मैं इसे अपने एंड्रॉइड प्रोजेक्ट में लागू करने की कोशिश कर रहा हूं। मेरे पास Service
है जिसे GoogleApiClient
की आवश्यकता है। मैं इस सेवा में इंजेक्ट करने के लिए डैगर का उपयोग कर रहा हूं।डैगर 2: घटक एक से अधिक स्कॉप्ड घटक पर निर्भर करता है
@FragmentScoped
@Component(dependencies = {NetComponent.class, RepositoryComponent.class})
public interface CustomServiceComponent {
void inject(CustomService customService);
}
@Singleton
@Component(modules = {AppModule.class, NetModule.class})
public interface NetComponent {
GoogleApiClient getGoogleApiClient();
}
@Singleton
@Component(modules = {AppModule.class, RepositoryModule.class})
public interface RepositoryComponent {
DatabaseService getDatabaseService();
}
AppModule
, NetModule
, और RepositoryModule
है तरीकों चिह्नित @Singleton @Provides
जब मैं अपने परियोजना का निर्माण मैं इस त्रुटि मिलती है:
The locationServiceComponent depends on more than one scoped component: @Singleton NetComponent @Singleton RepositoryComponent
मैं समझता हूँ कि मेरी LocationComponent
दो @Singleton
scoped घटकों पर निर्भर नहीं रह सकते, लेकिन मैं दोनों की जरूरत है उनमें से मेरी सेवा में और दोनों को @Singleton
होना चाहिए।
क्या वही काम करने का कोई बेहतर विकल्प है?
"मैं अपना स्थान समझता हूं कॉम्पोनेंट दो @ सिंगलेटन स्कॉप्ड घटकों पर निर्भर नहीं हो सकता" -> क्या आप समझा सकते हैं कि यह क्यों संभव नहीं है? –