у меня есть:Два @Injects в одном объекте, но из двух различных компонентов
@Inject
AdalService adalService;
@Inject
Realm realm;
Оба они происходят из двух разных компонентов.
AdalComponent
@UserScope
@Component(dependencies = {NetComponent.class}, modules = AdalServiceModule.class)
public interface AdalServiceComponent
{
void inject(MainActivity activity);
void inject(EventsJob eventsJob);
}
RealmComponent
@UserScope
@Subcomponent(modules = RealmModule.class)
public interface RealmComponent
{
void inject(EventsJob eventsJob);
}
Но я получаю следующее сообщение об ошибке:
Error:(16, 10) error: io.realm.Realm cannot be provided without an @Inject constructor or from an @Provides- or @Produces-annotated method.
io.realm.Realm is injected at
com.bjss.bjssevents.jobs.EventsJob.realm
com.bjss.bjssevents.jobs.EventsJob is injected at
com.bjss.bjssevents.dagger.components.AdalServiceComponent.inject(eventsJob)
RealmModule
@Module
public class RealmModule
{
private static final String TAG = RealmModule.class.getSimpleName();
public RealmModule(@Singleton final Context context)
{
Log.d(TAG, "Configuring Realm");
Realm.init(context);
Realm.setDefaultConfiguration(new RealmConfiguration.Builder().deleteRealmIfMigrationNeeded().build());
}
@UserScope
@Provides
public Realm providesRealm()
{
Log.d(TAG, "Providing Realm");
return Realm.getDefaultInstance();
}
}
проблемные темы не показаны. Это должно быть в методе, который '@ предоставляет'' Realm' –
Где ваш '@ Module' для предоставления экземпляра Realm? Можете ли вы вставить этот код. – raxelsson
Добавлен RealmModule. – Subby