2017-07-28 94 views
1

我已经使用匕首一段时间了,现在我正面临着与DaggerAppComponent类的生成有关的问题。无法使用匕首2依赖项从命令行构建Android gradle项目

从Android Studio运行项目时它工作正常,但每当我在根目录的命令行上运行任务assembleDebug时,gradle无法构建整个项目,因为未生成匕首类。

我错过了一些任务,以完成执行匕首annontation处理器?

依赖关系:

final DAGGER_VERSION = '2.0.1' 

compile "com.google.dagger:dagger:$DAGGER_VERSION" 
annotationProcessor "com.google.dagger:dagger-compiler:$DAGGER_VERSION" 
provided 'org.glassfish:javax.annotation:10.0-b28' 

这是最后的错误:

import com.company.injection.DaggerAppComponent; 
         ^
    symbol: class DaggerAppComponent 
    location: package com.company.injection 
:mobile:compileDebugJavaWithJavac FAILED 

FAILURE: Build failed with an exception. 

* What went wrong: 
Execution failed for task ':mobile:compileDebugJavaWithJavac'. 
> java.lang.NoSuchMethodError: com.google.common.collect.Multimaps.filterKeys(Lcom/google/common/collect/SetMultimap;Lcom/google/common/base/Predicate;)Lcom/google/co 
mmon/collect/SetMultimap; 

只是为了确保,该图是确定的,它工作正常,问题只发生,如果我尝试通过命令行与assembleDebug构建项目。

回答

0

花了一些时间在此之后,我解决了添加番石榴依赖作为注释处理器只是匕首编译器的问题。

final DAGGER_VERSION = '2.0.1' 

compile "com.google.dagger:dagger:$DAGGER_VERSION" 
annotationProcessor 'com.google.guava:guava:19.0' 
annotationProcessor "com.google.dagger:dagger-compiler:$DAGGER_VERSION" 
provided 'org.glassfish:javax.annotation:10.0-b28' 
0

我有同样的配置与'com.google.guava:guava:19.0',但我有以下错误:

Error:Execution failed for task ':mobile:compileDebugJavaWithJavac'. 
> java.lang.NoSuchMethodError: com.google.common.collect.Multimaps.filterKeys(Lcom/google/common/collect/SetMultimap;Lcom/google/common/base/Predicate;)Lcom/google/common/collect/SetMultimap; 

我想当时'com.google.guava:guava:22.0'更新番石榴版本升级到当前但错误仍在继续。

我更改为'com.google.guava:guava:21.0',它很好地工作。可能与其他版本不兼容。

相关问题