匕首2,有时在编译我得到“找不到符号类DaggerApplicationComponent”

最近更新Android Studio(2.0.7)(也许这是原因),有时build立时,我得到的错误。

想法是,通常编译顺利,但有时我得到匕首错误。

可能是Daggerconfiguration中的问题吗?

错误本身:

Executing tasks: [:app:assembleDebug]

按需configuration是一项孵化function。 增量Java编译是一个孵化function。 :app:preBuild UP-TO-DATE:app:preDebugBuild UP-TO-DATE:app:checkDebugManifest:app:preReleaseBuild UP-TO-DATE:app:prepareComAndroidSupportAppcompatV72311Library UP-TO-DATE:app:prepareComAndroidSupportDesign2311Library UP-TO-DATE:应用程序:prepareComAndroidSupportMultidex101Library最新date:app:prepareComAndroidSupportRecyclerviewV72311Library最新date:app:prepareComAndroidSupportSupportV42311Library最新date:app:prepareComDaimajiaSwipelayoutLibrary120Library最新date:app:prepareComF2prateekRxPreferencesRxPreferences101Library UP-TO-DATE:app:prepareComGithubAakiraExpandableLayout141Library UP- TO-DATE:app:prepareComGithubAfollestadMaterialDialogsCore0842Library UP-TO-DATE:app:prepareComGithubCastorflexSmoothprogressbarLibraryCircular120Library UP-TO-DATE:app:prepareComJakewhartonRxbindingRxbinding030Library UP-TO-DATE:app:prepareComPnikosisMaterialishProgress17Library最新date:app:prepareComTrelloRxlifecycle040Library UP-TO-DATE:应用程序:prepareComTrelloRxlifecycleComponent s040Library UP-TO-DATE:app:prepareComWdullaerMaterialdatetimepicker211Library UP-TO-DATE:app:prepareIoReactivexRxandroid110Library UP-TO-DATE:app:prepareMeRelexCircleindicator116Library UP-TO-DATE:app:prepareMeZhanghaiAndroidMaterialprogressbarLibrary114Library UP-TO-DATE:app:prepareDebugDependencies:app:compileDebugAidl最新date:app:compileDebugRenderscript UP-TO-DATE:app:generateDebugBuildConfig UP-TO-DATE:app:generateDebugAssets UP-TO-DATE:app:mergeDebugAssets UP-TO-DATE:app:generateDebugResValues UP-TO-DATE :app:generateDebugResources UP-TO-DATE:app:generateDebugSources UP-TO-DATE:app:compileDebugJavaWithJavac / app:generateDebugResources UP-TO-DATE:app:mergeDebugResources UP-TO-DATE:app:processDebugManifest home / ungvas / AndroidDev / Projects / FW / paynet-android / app / src / main / java / md / fusionworks / paynet / ui / activity / BaseActivity.java:23:错误:无法find符号导入md.fusionworks.paynet。 di.component.DaggerActivityComponent; ^符号:类DaggerActivityComponent位置:包md.fusionworks.paynet.di.component /home/ungvas/AndroidDev/Projects/FW/paynet-android/app/src/main/java/md/fusionworks/paynet/PaynetApplication.java: 7:错误:无法find符号导入md.fusionworks.paynet.di.component.DaggerApplicationComponent; ^符号:类DaggerApplicationComponent位置:包md.fusionworks.paynet.di.component 2错误

增量编译的66个课程在3.719秒完成。 :app:compileDebugJavaWithJavac FAILED:app:compileRetrolambdaDebug

失败:生成失败,出现exception。

  • 出了什么问题:执行失败的任务':app:compileDebugJavaWithJavac'。

    编译失败 详细信息请参阅编译器错误输出。

  • 尝试:运行–stacktrace选项来获取堆栈跟踪。 运行–info或–debug选项来获得更多的日志输出。

构build失败

总时间:19.556秒
谢谢。

Solutions Collecting From Web of "匕首2,有时在编译我得到“找不到符号类DaggerApplicationComponent”"

这似乎与Gradle 2.10中增加的增量编译有关

我设法修复它添加以下命令到gradle:

 -Pandroid.incrementalJavaCompile=false 

您可以在Android Studio中将其添加到: 文件| 设置| 构build,执行,部署| 编译器将其添加为命令行选项

2.0.0-beta3 编辑插件给出了一个警告,告诉你这个选项已经添加到Gradle DSL:

 android { compileOptions.incremental = false } 

2017年的变化:

Android Studio Canary使用更新版本的Gradle,apt插件可能无法正常工作,取而代之的是annotationProcessor 。 它可能会失败,尽pipe编译器警告说,它将在未来版本的gradle中被删除。

改变这个依赖线:

apt 'com.google.dagger:dagger-compiler:2.7'

annotationProcessor 'com.google.dagger:dagger-compiler:2.7'

并删除apt插件。

最新版本的Dagger(2.8)正在导致这个错误。 确保你的依赖如下所述

apt 'com.google.dagger:dagger-compiler:2.7' compile 'com.google.dagger:dagger:2.7'

确保你使用的是Java 1.7版本。 另外,如果你的匕首pipe道中有其他东西被破坏,它也会导致这个错误。

我有一个类似的问题,但由于不同的原因。
我只有当试图生成apk的问题。 否则,它工作正常。
在我的情况下,问题是,类是在test目录而不是main目录由于某种原因,我把它移动到主,它的工作。
希望它可以帮助别人

在我的情况下,以上都没有工作。

按照步骤生成DaggerApplicationComponent类。

  1. 清洁项目
  2. 重build项目
  3. 通过Option + Return手动导入或者如果在Android Studio中没有自动导入function,请修改+ Enter

完成

首先,将这一行添加到Project build.gradle文件中的buildscript的依赖项中。

  classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8' 

其次,在Module:app build.gradle文件的顶部添加这一行

 apply plugin: 'com.neenbedankt.android-apt' 

我有这个问题,但在构build过程中有两个失败。 一个是缺less的组件,但另一个是ButterKnife @BindView找不到视图。 解决这个问题修复了缺失的组件。 我假设任何失败的注释处理都会导致类似的问题。

你需要更新你的版本2.11匕首。

你的build.gradle依赖块应该看起来像下面的样子。

 dependencies { // Other dependencies should go here compile "com.google.dagger:dagger:2.11" annotationProcessor "com.google.dagger:dagger-compiler:2.11" provided 'javax.annotation:jsr250-api:1.0' compile 'javax.inject:javax.inject:1' } 

希望这可以帮助。

文件 – > InvalidateCaches /重新启动为我工作

尝试运行应用程序,构build将失败,然后您将可以select导入类。 发生这种情况是因为匕首只在运行时导入这些类,而不是在编译时导入。