标签:butterknife android compiler-errors dagger-2
我在我的类上添加注入后得到这个错误然后它给了我一个编译错误.
如果我删除
@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);
}
}
解决方法:
在我的情况下,我试过:
>使缓存无效并清理项目
>改变匕首的版本
>在gradle.properties中添加-Pandroid.incrementalJavaCompile = false
>更多.
在我的案例中唯一帮助我的是打开控制台“build”,点击“Toggle View”(在控制台左侧和锤子下方)并修复该屏幕上显示的错误.
标签:butterknife,android,compiler-errors,dagger-2 来源: https://codeday.me/bug/20191005/1857642.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。