Класс привязки данных не создан для нескольких папок макета - PullRequest
2 голосов
/ 29 февраля 2020

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

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

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

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

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/']
        }
    }

Структура папки ресурса:

enter image description here

Я приложил пример проекта, который я создал в android studio 3.6. Ссылка на исходный код

Ответы [ 2 ]

1 голос
/ 08 марта 2020

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

0 голосов
/ 24 марта 2020

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

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

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

Благодаря { ссылка }

...