Есть ли способ объединить данные из ароматов разных измерений? - PullRequest
0 голосов
/ 03 мая 2020

Я сделал 4 разных варианта одного и того же приложения и опубликовал их в Play Store как бесплатные приложения.

Сейчас я делаю платную версию для каждого из них, и для этого я создал 2 новых варианта: бесплатный и платный, и эти варианты имеют другое измерение, чем один из 4 Программы. 4 приложения имеют измерение «версия», а бесплатные / платные версии имеют измерение «режим».

Я пытаюсь выяснить, как это сделать, - установить разные коды и имена версий для каждой версии. пара / mode, например: flavourAFree -> versionCode 1 / flavourAPaid -> versionCode 2

Вот мой код:

flavorDimensions "version", "mode"

productFlavors {
    flavourA {
        dimension "version"
        ...
    }

    flavourB {
        dimension "version"
        ...
    }

    flavourC {
        dimension "version"
        ...
    }

    flavourD {
        dimension "version"
        ...
    }

    free {
        dimension "mode"
    }

    paid {
        dimension "mode"
    }
}

Пример того, чего я пытаюсь достичь (не совсем эти значения):

flavourAFree {
    versionCode 1
    versionName "1.0"
}

flavourAPaid {
    versionCode 4
    versionName "2020.2.0"
}

Когда я пытаюсь синхронизировать мой скрипт Gradle, я получаю следующую ошибку:

Произошла проблема при настройке проекта ': app'. У вкуса «flavourA» нет вкусового измерения.

Есть ли способ сделать то, что я пытаюсь сделать?

1 Ответ

0 голосов
/ 03 мая 2020

Что вам нужно сделать, описано в этой android статье

android {
    defaultConfig {
        versionCode 13
        versionName "2020.2"

    }

flavorDimensions "version", "mode"

productFlavors {
    flavourA {
        dimension "version"
        ...
    }

    flavourB {
        dimension "version"
        ...
    }

    flavourC {
        dimension "version"
        ...
    }

    flavourD {
        dimension "version"
        ...
    }

    free {
        dimension "mode"
        versionCode android.defaultConfig.versionCode
        versionName android.defaultConfig.versionName + ".3"
    }

    paid {
        dimension "mode"
        versionCode android.defaultConfig.versionCode - 12
        versionName android.defaultConfig.versionName + ".0"
    }
}

Я не знаю, если это то, что вы ищете, но это создаст :

  • flavourAFree с versionCode = 13 и versionName = "2020.2.3"
  • flavourBFree с versionCode = 13 и versionName = "2020.2.3"
  • flavourAPaid с versionCode = 1 и versionName = "2020.2.0"
  • flavourBPaid с versionCode = 1 и versionName = "2020.2.0"

Для получения дополнительной информации я рекомендую эту статью

...