У меня есть проект Android, который использует некоторые родные библиотеки довольно большого размера.
У меня есть несколько вариантов в этом проекте, и некоторые из них не используют эти библиотеки, поэтому я хотел бы исключить их из APK.
Я знаю несколько способов добиться этого, но я хотел бы использовать хороший код в файле build.gradle
, чтобы уменьшить возможные ошибки и изучить groovy
.
Я должен упомянуть, что есть логическое значение buildConfigField
(в этом примере называемое DO_IT
). Если DO_IT
равно false, библиотеки JNI должны быть исключены.
Вот как я это делаю сейчас:
defaultConfig {
buildConfigField "boolean", "DO_IT", "true"
}
productFlavors {
flavor1 {
// for this flavor JNI libs will be included
}
flavor2 {
// for this flavor JNI libs will NOT be included
buildConfigField "boolean", "DO_IT", "false"
ndk {
abiFilters ''
}
}
}
Примечания:
1 - Учтите, что у меня много вкусов с множеством свойств, и я не хочу копировать блок
ndk {
abiFilters ''
}
но мне не удается поместить этот блок в метод.
2 - Решение pefect просто исключает libs на основе DO_IT
buildConfigField
в процедуре вне блоков ароматов EG в defaultConfig
.