Как распространить вариант сборки в библиотеки?

До Gradle 3 мы могли использовать

configurations {
  client1DevCompile
  ...
}
dependencies {
  client1DevCompile project(
    path: ':common',
    configuration: 'app1DevRelease'
  )
...
}

после Gradle 3 он заявил, что вариант сборки будет распространяться автоматически, если оба модуля имеют одинаковые размеры и productFlavors.
В моем основном модуле у меня есть

flavorDimensions "environment"
productFlavors {
    prod {
        applicationId "package"
        dimension "environment"
    }

    qa {
        applicationId "package.qa"
        dimension "environment"
    }

    dev {
        applicationId "package.dev"
        dimension "environment"
    }
}

and in sub module i have
flavorDimensions "environment"
productFlavors {
    prod { dimension "environment" }
    qa { dimension "environment" }
    dev { dimension "environment" }
}

Однако, когда я выбираю buildvarian для основного модуля, он не распространяется Как распространить вариант сборки в библиотеки?

0
0
46
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

В подмодуле измените ароматы следующим образом:

flavorDimensions "environment"
productFlavors {
    prod { dimension "environment" }
    qa { dimension "environment" }
    dev { dimension "environment" }
}

И не забудьте добавить зависимость к подмодулю.

У меня похожая (лучше сказать более сложная) ситуация, и она отлично работает. Вот мои примеры основных / подмодулей Gradle, которые подходят мне:

главный:

flavorDimensions "brand", "mode"

productFlavors {
    // Brand
    a {
        dimension "brand"
        applicationIdSuffix ".a"
    }
    b{
        dimension "brand"
        applicationIdSuffix ".b"
    }

    // Demo-mode
    normal {
        dimension "mode"
        resValue "string", "demo_verion", ""
    }
    demo {
        dimension "mode"
        applicationIdSuffix ".demo"
        versionNameSuffix "-demo"
        resValue "string", "demo_verion", "DEMO VERSION"
    }
}

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation project(':submodulelib')
}

подмодуль:

flavorDimensions "brand"

productFlavors {
    // Brand
    a{
        dimension "brand"
        externalNativeBuild {
            cmake {
                cFlags "-DA"
            }
        }
    }
    b{
        dimension "brand"
        externalNativeBuild {
            cmake {
                cFlags "-DB"
            }
        }
    }
}

добавлены размеры. однако ароматы все еще не синхронизированы, после того, как я изменил основной модуль на qa, модуль dev остается в dev

Yarh 25.09.2018 13:57

@Yarh вы пытались снова изменить основной вкус из меню вариантов сборки? всякий раз, когда я меняю размеры продукта, студия Android не обнаруживает его, пока я не попытаюсь изменить вариант сборки приложения.

Afshin 25.09.2018 14:03

@Yarh Я добавил образец из моего рабочего основного / подмодуля.

Afshin 25.09.2018 14:11

да, я меняю только основной модуль из меню вариантов сборки.

Yarh 25.09.2018 14:34

@Yarh То, что я опубликовал, работает на меня. если вы можете, пожалуйста, добавьте большинство основных и подмодульных файлов gradle (просто удалите важные части).

Afshin 25.09.2018 21:21

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