【问题标题】:Not able to build Android gradle project from command line with dagger 2 dependency无法使用 dagger 2 依赖项从命令行构建 Android gradle 项目
【发布时间】:2018-01-04 22:54:27
【问题描述】:

我使用 dagger 已经有一段时间了,现在我遇到了一个与 DaggerAppComponent 类的生成有关的问题。

从 Android Studio 运行项目时,它按预期工作,但是每当我在根目录的命令行上运行任务 assembleDebug 时,gradle 无法构建整个项目,因为没有生成 dagger 类。

为了完全执行匕首注释处理器,我错过了一些任务?

依赖关系:

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 通过命令行构建项目,就会出现问题。

【问题讨论】:

    标签: android android-studio dagger-2 annotation-processing


    【解决方案1】:

    在花了一些时间之后,我修复了将番石榴依赖项添加为 annotationProcessor 就在匕首编译器之上的问题。

    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'
    

    【讨论】:

      【解决方案2】:

      我的配置与'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;
      

      我尝试将guava版本更新到当时'com.google.guava:guava:22.0'的当前版本,但错误仍然存​​在。

      我改成'com.google.guava:guava:21.0',效果很好。可能与其他版本不兼容。

      【讨论】:

        猜你喜欢
        • 2012-07-30
        • 2013-01-30
        • 2013-08-05
        • 1970-01-01
        • 1970-01-01
        • 2015-11-30
        • 2022-11-27
        • 1970-01-01
        • 2014-02-04
        相关资源
        最近更新 更多