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

问题描述 投票:5回答:4

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

-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
4个回答
1
投票

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


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

0
投票

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


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.