Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 匕首2:使用子组件/依赖组件时找不到符号类_Java_Android_Dagger 2 - Fatal编程技术网

Java 匕首2:使用子组件/依赖组件时找不到符号类

Java 匕首2:使用子组件/依赖组件时找不到符号类,java,android,dagger-2,Java,Android,Dagger 2,在添加依赖/子组件时,Dagger 2遇到了一个问题,这将为DaggerAppComponent/DaggerComponent/DaggerComponent生成一个找不到的符号类 组件如下所示: public class ApplicationComponent { @Singleton @Component(modules= {...}) public interface AppComponent { SomeManager someManager(); void inje

在添加依赖/子组件时,Dagger 2遇到了一个问题,这将为DaggerAppComponent/DaggerComponent/DaggerComponent生成一个找不到的符号类

组件如下所示:

public class ApplicationComponent {
@Singleton
@Component(modules= {...})
public interface AppComponent {
    SomeManager someManager();
    void inject(Application application);
}
}

@UserScope
@Component(modules = {...}, dependencies = ApplicationComponent.AppComponent.class)
public interface BComponent{
    CComponent plus (AModule aModule, BModule bModule);
    void inject (SomeActivity someActivity);
}

@PerFragment
@Subcomponent (modules = {AModule.class,BModule.class})
public interface CComponent {
    void inject (SomeFragment someFragment);
}

每当我将plus方法添加到BComponent时,每当我尝试构建时,就会得到一个错误,即无法为Dagger生成的所有3个类找到symbol类。如果我注释掉plus方法,它确实会生成。有什么地方我做错了吗?

当子组件在库项目中时,我遇到了同样的问题,我忘记将这一行放在library/build.gradle中

apply plugin: 'com.android.library'
apply plugin: 'com.neenbedankt.android-apt'
...
...
dependencies {
    ...
    apt 'com.google.dagger:dagger-compiler:2.5'
}

希望这将帮助您

您使用的是什么版本的Dagger2?Dagger2.2编译器,Dagger2.2,带有jsr250注释依赖项。我想知道更新到Dagger2.4是否可以修复它,尽管您可能需要添加
apt'com.google.guava:guava:19.0'
才能正常工作。您能否分享给编译器的确切错误?