You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

构建失败:':app:hiltAggregateDepsDebug'任务执行异常求助

解决Dagger2与Hilt混用时的构建问题

1. 修复JavaPoet版本冲突

java.lang.NoSuchMethodError的核心原因是Hilt与Dagger2依赖的JavaPoet版本不一致,导致hiltAggregateDeps任务执行时找不到目标方法。

在项目根目录的build.gradle.kts中强制统一JavaPoet版本:

subprojects {
    configurations.all {
        resolutionStrategy {
            // 选择与当前Hilt版本兼容的JavaPoet稳定版,比如Hilt 2.44.1对应1.13.0,可通过依赖树确认具体版本
            force("com.squareup:javapoet:1.13.0")
        }
    }
}

2. 隔离Dagger2与Hilt的处理器配置

功能模块仅保留Dagger2依赖,排除Hilt处理器;主模块(app)仅保留Hilt配置,排除Dagger2处理器,避免二者冲突。

修改feature.gradle.kts:

plugins {
    id("com.android.library")
    kotlin("android")
}

dependencies {
    implementation("com.google.dagger:dagger:2.44.2")
    annotationProcessor("com.google.dagger:dagger-compiler:2.44.2")
    
    // 排除混入的Hilt处理器
    configurations.annotationProcessor {
        exclude(group = "com.google.dagger", module = "hilt-compiler")
    }
}

主模块build.gradle.kts调整:

plugins {
    id("com.android.application")
    kotlin("android")
    id("dagger.hilt.android.plugin")
}

hilt {
    enableAggregatingTask = true
}

dependencies {
    implementation("com.google.dagger:hilt-android:2.44.1")
    kapt("com.google.dagger:hilt-compiler:2.44.1")
    
    // 排除Dagger2处理器避免冲突
    configurations.kapt {
        exclude(group = "com.google.dagger", module = "dagger-compiler")
    }
}

3. 消除处理器选项未识别警告

Dagger2会识别到Hilt的处理器选项引发警告,在功能模块的build.gradle.kts中添加过滤配置:

android {
    defaultConfig {
        javaCompileOptions {
            annotationProcessorOptions {
                arguments["dagger.ignoreUnknownOptions"] = "true"
            }
        }
    }
}

4. 清理缓存重新构建

执行命令清理旧编译产物,避免缓存干扰:

./gradlew clean
./gradlew assembleDebug

内容的提问来源于stack exchange,提问作者lukemilewalker

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 08:27:13