2016-03-10 6 views
3

Я работаю с проектом, у которого много устаревшего кода. Мне нужно отделить «старый код» от нового. Таким образом, я создал следующие каталоги:«Невозможно найти символьную переменную BuildConfig» с несколькими исходными папками

-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 сборки», но ошибка сохраняется

+0

Попробуйте построить свой проект, если он не построен, он не будет доступен. – thepoosh

+0

. Я получаю эту ошибку, когда пытаюсь построить/запустить/запустить проект = ( – Addev

+0

). Вы нашли ответ? и тратить часы на него и до сих пор не могут найти решение. –

ответ

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

Clicke синхронизации, на правой стороне сохранить после градильной синхронизации

+0

Пробовал все виды очистки/синхронизации, но не работает. – Addev

+0

попробовал недействительные кэши из меню файлов? –

+0

yes = (ничего не работает, и ошибка кажется бессмысленной – Addev

0

Это может помочь другим людям, потратившим несколько часов на решение подобной проблемы. Найдите вхождения BuildConfig и посмотрите, был ли импортирован правильный импорт. Странно, что компилятор не обнаружил очевидного неправильного импорта b ut указал на случайную строку кода.

0

У меня была эта проблема, и оказалось, что у меня было два каталога в src/main/java/com/<app name> - один был старым и не соответствовал идентификатору пакета. Устранение этого устранило проблему для меня.

Смежные вопросы