Android Studio не показывает каталог res

#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», а не объединял два каталога ресурсов. Я не смог найти, как выполнить разделение, а не слияние