#android #android-studio #build.gradle
#Android #android-studio #build.gradle
Вопрос:
У меня есть проект Android, проверенный в Android Studio (4.0.1). Build.gradle содержит следующий блок sourceSets (фрагмент показан ниже). Это предназначено для предотвращения включения файлов ресурсов определенных значений в упакованный aar (я только хочу включить values-en-rUS и values-es-rUS в aar).
Aar упаковывается правильно и содержит только values-en-rUS и values-es-rUS, как и ожидалось.
sourceSets {
main {
def resSrc = fileTree(dir: 'src/main/res').matching { exclude { details ->
(!details.file.canonicalPath.matches('.*values-(en|es)-rUS.*')
amp;amp; details.file.canonicalPath.matches('.*values-.*'))
} }
...
res.srcDirs = [ resSrc ]
...
}
}
Однако Android Studio больше не показывает мне res
каталог (весь каталог!) На боковой панели «Project» при выборе «Android», и файлы кода Java больше не могут разрешать идентификаторы или макеты (например findViewById(R.id.bottom_sheet_layout)
, — они отображаются в виде красных волнистых линий).
Как я могу сделать так, чтобы Android Studio продолжала показывать каталог res в этом случае?
Спасибо.
Ответ №1:
Попробуйте это:
sourceSets {
main {
def resSrc = fileTree(dir: 'src/main/res').matching { exclude { details ->
(!details.file.canonicalPath.matches('.*values-(en|es)-rUS.*')
amp;amp; details.file.canonicalPath.matches('.*values-.*'))
} }
res.srcDirs = [resSrc, 'src/main/res']
}
}
Примечание: Если два или более каталогов ресурсов содержат один и тот же файл ресурсов, при объединении ресурсов возникает ошибка.
Для получения дополнительной информации: https://developer.android.com/studio/write/add-resources
Комментарии:
1. Спасибо, но это не то, чего я ожидаю. Я хочу установить res.srcDirs таким образом, чтобы он исключал некоторые файлы из моего «src / main / res», а не объединял два каталога ресурсов. Я не смог найти, как выполнить разделение, а не слияние