2016-08-23 16 views
3

У меня есть код в моем приложении для Android, который я намерен хранить только в debug-builds.Android - зависимости и разделение кода (debug/release)

Я знаю такого подхода:

if (BuildConfig.DEBUG) { 
    //code here 
} 

Однако, проблема заключается в том, что мой код зависит от внешних зависимостей, которые я хотел бы также иметь в отладочной версии только:

debugCompile "dependency1" 

//this wont compile in release mode 
if (BuildConfig.DEBUG) { 
    //code which references dependency1 
} 

Учитывая что в java нет компиляции условных выражений, есть ли какие-либо решения, кроме того, что каждый раз комментировать блоки кода вручную (что, очевидно, представляет собой огромную проблему)?

EDIT: Егор pointed меня в правильном направлении, и после того, как делать немного больше Reasearch на «источник наборов» Я нашел ответ, который точно описывает мою ситуацию и обеспечивает отличное решение: https://stackoverflow.com/a/31483962/5790273

ответ

2

Вставьте код только хотите скомпилировать в режиме отладки в разделе «src/debug/java», как описано here. Gradle позволяет использовать множество исходных наборов для каждого типа сборки и вкуса и будет компилировать только те, которые имеют отношение к конфигурации сборки.