“无法找到具有多个源文件夹的符号变量BuildConfig”

时间:2016-03-10 12:20:57

标签: java android android-studio gradle

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

-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 ...",'同步gradle build',但错误仍然存​​在

4 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

作为建议,请尝试:

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']
        }
    }

答案 2 :(得分:0)

Clicke同步,在gradle sync后保存的右侧

答案 3 :(得分:0)

我遇到了这个问题,事实证明我在src/main/java/com/<app name>中有两个目录 - 一个是旧的,与捆绑ID不匹配。删除这个解决了我的问题。