首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >无法解析符号'DaggerAppComponent‘

无法解析符号'DaggerAppComponent‘
EN

Stack Overflow用户
提问于 2019-05-16 23:43:21
回答 1查看 672关注 0票数 0

我一直在添加githubbrowsersample (java)的di folder中的所有组件,在创建AppInjector之前似乎没有引起任何麻烦,因为它不想生成DaggerAppComponent,我知道在示例中它显示在generatedJava文件夹中,而不是为我,所以这就是为什么它无法解析,但我不确定如何解决它。

我尝试了常见的疑点,无效缓存,在gradle中尝试了不同的替代方案,看看android.enableSeparateAnnotationProcessing=true做了什么,添加了-Pandroid.incrementalJavaCompile = false,从许多其他面临类似问题的帖子中找到了许多帖子,但我就是不明白为什么我的代码没有发挥作用。

Build.gradle (模块: app):

代码语言:javascript
复制
 implementation "com.google.dagger:dagger:$rootProject.dagger"
    annotationProcessor "com.google.dagger:dagger-compiler:$rootProject.dagger"
    implementation "com.google.dagger:dagger-android:$rootProject.dagger"
    implementation "com.google.dagger:dagger-android-support:$rootProject.dagger" // if you use the support libraries
    annotationProcessor "com.google.dagger:dagger-android-processor:$rootProject.dagger"

我的构建错误,其中一些似乎只在di在原地时发生:

代码语言:javascript
复制
Gradle may disable incremental compilation as the following annotation processors are not incremental: dagger-compiler-2.17.jar (com.google.dagger:dagger-compiler:2.17), dagger-android-processor-2.17.jar (com.google.dagger:dagger-android-processor:2.17), room-compiler-2.0.0.jar (androidx.room:room-compiler:2.0.0), lifecycle-compiler-2.0.0.jar (androidx.lifecycle:lifecycle-compiler:2.0.0), databinding-compiler-3.4.1.jar (androidx.databinding:databinding-compiler:3.4.1).
Consider setting the experimental feature flag android.enableSeparateAnnotationProcessing=true in the gradle.properties file to run annotation processing in a separate task and make compilation incremental.
D:\AndroidStudioProjects\smhApp\binding\FragmentDataBindingComponent.java:5: error: cannot find symbol
public class FragmentDataBindingComponent implements androidx.databinding.DataBindingComponent {
                                                                         ^
  symbol:   class DataBindingComponent
  location: package androidx.databinding
D:\AndroidStudioProjects\smhApp\ui\u\category\CategoryFragment.java:32: error: cannot find symbol
    androidx.databinding.DataBindingComponent dataBindingComponent = new FragmentDataBindingComponent(this);
                        ^
  symbol:   class DataBindingComponent
  location: package androidx.databinding
D:\AndroidStudioProjects\smhApp\ui\u\common\CategoryListAdapter.java:39: error: cannot find symbol
    public CategoryListAdapter(DataBindingComponent dataBindingComponent) {
                               ^
  symbol:   class DataBindingComponent
  location: class CategoryListAdapter
D:\AndroidStudioProjects\smhApp\di\AppModule.java:35: error: com.smhapp.di.ViewModelModule has errors
@Module(includes = ViewModelModule.class)
^
D:\AndroidStudioProjects\smhApp\di\ViewModelModule.java:20: error: @Binds methods' parameter type must be assignable to the return type
    abstract ViewModelProvider.Factory bindViewModelFactory(CrosscareService factory);
                                       ^
D:\AndroidStudioProjects\smhApp\di\AppComponent.java:29: error: com.smhapp.di.AppModule has errors
@Component(modules = {
^
D:\AndroidStudioProjects\smhApp\ui\u\category\CategoryFragment.java:25: error: [ComponentProcessor:MiscError] dagger.internal.codegen.ComponentProcessor was unable to process this class because not all of its dependencies could be resolved. Check for compilation errors or a circular dependency with generated code.
public class CategoryFragment extends Fragment implements Injectable {
       ^
7 errors

> Task :app:compileDebugJavaWithJavac FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:compileDebugJavaWithJavac'.
> Compilation failed; see the compiler error output for details.

一定是花了至少一个小时才能找到解决方案。

耽误您时间,实在对不起。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56172239

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档