Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/209.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
Android Dagger批注处理器无法找到com/google/common/collect/SetMultimap_Android_Dagger 2 - Fatal编程技术网

Android Dagger批注处理器无法找到com/google/common/collect/SetMultimap

Android Dagger批注处理器无法找到com/google/common/collect/SetMultimap,android,dagger-2,Android,Dagger 2,我一直负责在我们现有的项目中集成Dagger,我对Dagger注释处理器有点问题 我的环境非常受限,所以我不能只使用jcenter()甚至GoogleMaven来获取依赖项。我们有一个内部常春藤回购,存储和管理我们的所有依赖关系 也就是说,我已经删除了Dagger需要的所有依赖项,但我仍然有一个问题。Gradle sync成功完成并解决了依赖关系,但是当我进入构建时,我得到了以下错误 错误:错误的服务配置文件,或运行时引发异常 正在构造处理器对象:javax.annotation.process

我一直负责在我们现有的项目中集成Dagger,我对Dagger注释处理器有点问题

我的环境非常受限,所以我不能只使用jcenter()甚至GoogleMaven来获取依赖项。我们有一个内部常春藤回购,存储和管理我们的所有依赖关系

也就是说,我已经删除了Dagger需要的所有依赖项,但我仍然有一个问题。Gradle sync成功完成并解决了依赖关系,但是当我进入构建时,我得到了以下错误

错误:错误的服务配置文件,或运行时引发异常 正在构造处理器对象:javax.annotation.processing.Processor: 无法找到提供程序dagger.internal.codegen.ComponentProcessor 实例化:java.lang.NoClassDefFoundError: com/google/common/collect/SetMultimap

很明显,我缺少了一个依赖项,因为我特别指定并允许jcenter()和Google Maven作为存储库,这可以用于测试目的,但对于prod构建,这是不允许的,我可以毫无例外地构建

现在,仔细阅读错误后,我发现Dagger找不到com.google.comm.collect.SetMutliMap

我已经搜索了很多次试图找到这个依赖项,我能找到的只是这个文件是Guava的一部分,或者至少它的一些函数是

需要注意的一点是,我正在使用以下版本的gradle:

    classpath 'com.android.tools.build:gradle:3.0.0'
这是我在build.gradle中的匕首依赖项,它是一个较旧的版本:

    //Dagger
    compile 'com.google.dagger:dagger:2.10'
    annotationProcessor 'com.google.dagger:dagger-compiler:2.10'
其他依赖项:

    //lifecycle libs
    compile "android.arch.lifecycle:runtime:1.0.3"
    compile "android.arch.lifecycle:extensions:1.0.0"
    annotationProcessor "android.arch.lifecycle:compiler:1.0.0"

    compile 'de.greenrobot:eventbus:2.4.1'
    compile 'org.apache.commons:commons-lang3:3.4'
    compile 'commons-io:commons-io:2.4'
    compile 'com.android.support:multidex:1.0.1'

    compile 'com.android.support:support-v4:26.1.0'
    compile 'com.android.support:design:26.1.0'

    compile 'com.github.ganfra:material-spinner:2.0.0'

    compile 'com.nulab-inc:zxcvbn:1.1.3'

    compile('com.google.android.gms:play-services-vision:10.2.1') {
        exclude group: 'com.android.support'
    }

    compile 'org.zakariya.stickyheaders:stickyheaders:0.7.6'

    compile 'com.google.code.gson:gson:2.8.0'

    compile('com.google.android.gms:play-services-gcm:10.2.1') {
        exclude group: 'com.android.support'
    }
    compile('com.google.android.gms:play-services-maps:10.2.1') {
        exclude group: 'com.android.support'
    }
    compile('com.google.android.gms:play-services-location:10.2.1') {
        exclude group: 'com.android.support'
    }
    compile 'com.android.support:appcompat-v7:26.1.0'
    compile 'com.android.support:cardview-v7:26.1.0'

    compile 'com.android.support:support-annotations:26.1.0'

    //retrofit dependencies
    compile 'com.squareup.okhttp3:okhttp:3.9.0'
    compile 'com.squareup.retrofit2:retrofit:2.3.0'
    compile 'com.squareup.retrofit2:converter-gson:2.3.0'
    compile 'com.squareup.okhttp3:logging-interceptor:3.9.0'
由于我的环境受限,我无法按照自己的意愿更新依赖项,因此在我现有的范围内工作,有人对如何解决这一问题有任何想法吗


谢谢你,原来
com.google.common.collect
com.google.guava
有了这个发现,我找到了一个有效的解决方案。不管出于什么原因,
dagger编译器
没有解决它自己的依赖关系,即
com.google.guava

我的解决方案包括从编译器中排除guava依赖项并将其添加到annotationProcessor路径。我还排除了我的案例中的findbug,因为旧版本在我们的测试项目中是一个依赖项

annotationProcessor ('com.google.guava:guava:22.0'){
    exclude group: 'com.google.code.findbugs'
}
annotationProcessor('com.google.dagger:dagger-compiler:2.13') {
    exclude group: 'com.google.guava'
}