GradleException: Android задач уже созданы для многомодульных общих версий - PullRequest
0 голосов
/ 27 апреля 2020

Пытаясь следовать Образцу модуляции Jeroen Mols , он указывает хороший метод, позволяющий всем модулям обмениваться номерами версий. В проекте верхнего уровня build.gradle добавьте следующее:

subprojects {
    afterEvaluate { project ->
        if (project.hasProperty('android')) {

            android {
                compileSdkVersion build_versions.target_sdk

                defaultConfig {
                    minSdkVersion build_versions.min_sdk
                    targetSdkVersion build_versions.target_sdk
                    testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"

                    vectorDrawables.useSupportLibrary = true
                }

                compileOptions {
                    sourceCompatibility JavaVersion.VERSION_1_8
                    targetCompatibility JavaVersion.VERSION_1_8
                }
            }
        }
    }
}

Теперь никаким файлам build.gradle уровня модуля не нужно указывать эти поля. Однако я получаю:

GradleException: Android tasks have already been created.

Я не указываю android .applicationVariants, android .libraryVariants или android .testVariants, например, в описании этой ошибки упоминается, что может Я тут делаю не так? Я даже попытался полностью удалить блок android из каждого модуля, и ошибка не исчезла.

1 Ответ

0 голосов
/ 28 апреля 2020

Хорошо, проблема в том, что я создал модуль библиотеки внутри модуля ядра вместо того же уровня папки. Я предполагаю, что этот блок afterEvaluate android не работает для модулей внутри модулей. Поэтому я решил просто убедиться, что модули указаны на одном уровне.

...