Класс привязки данных не создан для нескольких папок макета

В Android Studio 3.6 после создания нового проекта я не могу создать класс, сгенерированный привязкой для нескольких папок.

У меня есть несколько папок с макетами:

res/layout
res/layouts/dashboard
res/layouts/notifications

Я могу создать класс привязки для

res / layout

но он не работает для других папок макета.

Файл приложения Gradle:

dataBinding{
        enabled = true
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    kotlinOptions {
        jvmTarget = "1.8"
    }
    sourceSets {
        main {
            manifest.srcFile 'src/main/AndroidManifest.xml'
            java.srcDirs = ['src/main/java']
            res.srcDirs =
                    [
                            'src/main/res/layouts/notification',
                            'src/main/res/layout/dashboard',
                            'src/main/res/layouts',
                            'src/main/res/layout',
                            'src/main/res'
                    ]
            assets.srcDirs = ['src/main/assets', 'src/main/assets/']
        }
    }

Структура папок ресурсов:

Я приложил образец проекта, который я создал в студии Android 3.6. Ссылка на исходный код

2 ответа

Это ошибка в android studio, она была исправлена ​​в android studio 4.0 beta и 4.1 canary. И Google выпустит исправление для 3.6, чтобы исправить это.

Быстрое исправление, пока это не будет исправлено в Android Studio:

Добавьте вывод сгенерированных файлов привязки в свой файл gradle (это работает как для привязки представления, так и для привязки данных):

android {
    sourceSets {
        main {
            java.srcDirs += 'build/generated/data_binding_base_class_source_out/debug/out'## Heading ##
        }
    }
}

Благодаря /questions/52342087/klass-privyazki-dannyih-ne-sozdaetsya-v-poslednej-versii-studio-36/52342113#52342113

Другие вопросы по тегам