2017-07-28 93 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',它很好地工作。可能與其他版本不兼容。

相關問題