【问题标题】:"Cannot find symbol variable BuildConfig" with multiple source folders带有多个源文件夹的“找不到符号变量 BuildConfig”
【发布时间】:2016-06-25 06:58:45
【问题描述】:

我正在处理一个包含大量遗留代码的项目。我需要将“旧代码”与新代码分开。所以我创建了以下目录:

-ProjectRoot
  -app
    -src
      -main
        -java
        -java_legacy
        -res
        -res_legacy

并将以下块添加到我的build.gradle:

android {
        .....
        sourceSets {
            main.java.srcDirs += 'src/main/java_legacy'
            main.res.srcDirs += 'src/main/res_legacy'
        }
}

但是当我尝试运行应用程序时,我得到了错误:

error: cannot find symbol variable BuildConfig 

显示错误的文件似乎是随机的,不使用也不导入类 BuildConfig。

如果我清空生成错误的文件中的代码,它会出现在另一个(伪随机)文件中。

我该如何解决这个问题?

注意:我试过了,"Build/CleanProject","File/ Invalidate Caches / Restart ...",'Synchronize gradle build' 但错误仍然存​​在

【问题讨论】:

  • 尝试构建你的项目,只要没有构建,就无法访​​问
  • 我在尝试构建/管理/运行项目时收到此错误 =(
  • 你找到答案了吗?我遇到了这个问题,浪费了很多时间,但仍然找不到解决方案。

标签: java android android-studio gradle


【解决方案1】:

我遇到了这个问题,结果发现我在 src/main/java/com/<app name> 中有两个目录 - 一个很旧并且与捆绑包 ID 不匹配。删除它为我解决了这个问题。

【讨论】:

    【解决方案2】:

    这可能会帮助那些浪费了几个小时解决类似问题的人。搜索出现的 BuildConfig 并查看是否已导入正确的。奇怪的是,编译器没有捕捉到明显的错误导入,而是指向了随机的代码行。

    【讨论】:

      【解决方案3】:

      点击同步,右侧的gradle同步后保存

      【讨论】:

      • 尝试了各种清理/同步但不起作用
      【解决方案4】:

      作为建议,请尝试:

      sourceSets {
              main {
                  manifest.srcFile 'src/main/AndroidManifest.xml'
                  java.srcDirs = ['src/main/java', 'src/main/java_legacy']
                  res.srcDirs = ['src/main/res', 'src/main/res_legacy']
              }
          }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-09-26
        • 1970-01-01
        • 2023-04-02
        • 2019-09-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-09-14
        相关资源
        最近更新 更多