Je reçois cette erreur après avoir ajouté injecter sur ma classe puis il me donne une erreur de compilation. Si je retirene peut pas trouver la classe de symbole DaggerAppComponent ou ne peut pas trouver la classe de symbole DaggerActivityComponent
@Inject static ApiService mApiService;
il fonctionne très bien
Et j'utilise 2 classe Application ceux-ci sont MultidexApplication étendue parce que j'ai fusionner 2 première application utilise dagger2 et la deuxième application est Butterknife et à la fois la structure du répertoire differnet et à la fois application interdépendante fonctionne bien mais après fusionner l'application de code pas compiler et donner erreur DaggerAppComponent!
S'il vous plaît nous aider à résoudre ma requête
Je suis suivre la structure ci-dessous
@ActivityScope
@Component(dependencies = AppComponent.class)
public interface ActivityComponent extends AppComponent {
void inject(SignInActivity activity);
}
@Singleton
@Component(modules = {ApplicationModule.class, ApiModule.class})
public interface AppComponent {
Context appContext();
Config config();
ApiService apiService();
}
@Module
public class ActivityModule {
private final Activity mActivity;
public ActivityModule(Activity activity){
mActivity = activity;
}
@Provides
public Context activityContext(){
return mActivity;
}
}
@Module
public class ApiModule {
@Provides
@Singleton
public ApiService apiService(){
OkHttpClient client = new OkHttpClient().newBuilder()
.connectTimeout(10, TimeUnit.SECONDS)
.readTimeout(30, TimeUnit.SECONDS)
.writeTimeout(10, TimeUnit.SECONDS)
.build();
ObjectMapper mapper = new ObjectMapper();
mapper.configure(DeserializationFeature.FAIL_ON_IGNORED_PROPERTIES,false);
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES,false);
return new Retrofit.Builder()
.baseUrl(Config.API_URL)
.addConverterFactory(JacksonConverterFactory.create(mapper))
.client(client)
.build()
.create(ApiService.class);
}
}
@Module
public class ApplicationModule {
private final App mApp;
public ApplicationModule(App app) {
mApp = app;
}
@Provides
@Singleton
public Context appContext() {
return mApp;
}
@Provides
@Singleton
public Config config() {
return new Config(mApp);
}
}
@Scope
@Retention(RetentionPolicy.RUNTIME)
public @interface ActivityScope {
}
public class App extends BrowserApp {
private AppComponent mAppComponent;
@Override
public void onCreate() {
super.onCreate();
mAppComponent = DaggerAppComponent.builder().applicationModule(new ApplicationModule(this)).build();
}
public AppComponent getAppAppComponent() {
return mAppComponent;
}
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this);
}
}
Avez-vous cliquez sur make projet? Cliquez sur make projet puis vous allez, vous obtiendrez DaggerAppComponant. –
Son même effet Non resloved – mbpatel
Je ne suis pas très au courant à ce sujet, je suis aussi débutant à suivre cette structure, mais vous pouvez consulter http://saulmm.github.io/when-Thor-and-Hulk-meet-dagger2-rxjava -1 et un autre blog: https://blog.mindorks.com/android-amazing-open-source-apps-e44f520593cc –