gpt4 book ai didi

android - 找不到符号类 DaggerAppComponent 或找不到符号类 DaggerActivityComponent

转载 作者:可可西里 更新时间:2023-11-01 19:09:54 26 4
gpt4 key购买 nike

在我的类上添加注入(inject)后我得到了这个错误然后它给了我一个编译错误。如果我删除

@Inject static ApiService mApiService;

一切正常

我正在使用 2 个应用程序类,它们是扩展的 MultidexApplication,因为我合并了 2 个应用程序,第一个是使用 dagger2,第二个应用程序是 butterknife,两个目录结构不同,两个应用程序相互依赖地工作正常,但合并后代码应用程序无法编译并给出 DaggerAppComponent 错误!

请帮助我们解决我的疑问

我遵循以下结构


@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);
}
}

最佳答案

就我而言,我尝试过:

  • 使缓存失效并清理项目
  • 改变 Dagger 的版本
  • 在 gradle.properties 中添加 -Pandroid.incrementalJavaCompile = false
  • 更多。

在我的案例中,唯一对我有帮助的是打开控制台“build”,点击“Toggle View”(在控制台左侧和下方锤子)并修复该屏幕上出现的错误

关于android - 找不到符号类 DaggerAppComponent 或找不到符号类 DaggerActivityComponent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43755753/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com