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

Android Studio构建生成文件混入Java目录,多Flavor下如何修复?

解决Dagger/Hilt生成目录混入Java源目录的问题
  • 检查Gradle的sourceSets配置
    大概率是模块的build.gradle(或build.gradle.kts)里,sourceSets不小心把build生成目录包含进了源码集合。打开模块的Gradle配置文件,找到android块下的sourceSets,确保只指定src/main、src/user、src/admin这类源码目录,不要包含build开头的路径。
    示例KTS配置:

    android {
        sourceSets {
            getByName("main") {
                java.srcDirs("src/main/java")
                res.srcDirs("src/main/res")
            }
            getByName("user") {
                java.srcDirs("src/user/java")
                res.srcDirs("src/user/res")
            }
            getByName("admin") {
                java.srcDirs("src/admin/java")
                res.srcDirs("src/admin/res")
            }
        }
    }
    

    若发现包含build目录的配置,直接删除即可。

  • 清理并重建项目
    执行命令清理构建缓存:

    # macOS/Linux
    ./gradlew clean
    # Windows
    gradlew clean
    

    之后重新构建目标变体:

    ./gradlew assembleUserDebug
    

    再点击Android Studio顶部的File -> Sync Project with Gradle Files,让IDE同步最新配置。

  • 切换视图手动标记排除目录

    1. 把Android Studio的项目视图从默认的Android模式切换到Project Files模式,这样能看到所有目录(包括build文件夹)。
    2. 找到build目录下的dagger、hilt_aggregated_deps等文件夹,右键选择Mark Directory as -> Excluded。
    3. 切换回Android模式,这些生成目录就不会再混入Java目录显示了。
  • 验证Hilt插件配置
    确保Hilt的Gradle插件配置正确:

    • 模块build.gradle中启用插件:
      plugins {
          id("com.android.application")
          id("dagger.hilt.android.plugin")
          kotlin("android")
      }
      
    • 项目根build.gradle中添加classpath:
      buildscript {
          dependencies {
              classpath("com.google.dagger:hilt-android-gradle-plugin:2.44")
          }
      }
      

    建议使用Hilt的最新稳定版本,避免旧版本的路径生成bug。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 22:45:39