Не удается добавить модуль динамических функций из-за проблем со сборкой - PullRequest
2 голосов
/ 12 апреля 2019

Я хотел внедрить новый модуль динамических функций в существующее приложение, но мне пришлось отказаться от него из-за проблем со вкусом продукта.

Пример кода можно найти здесь. https://github.com/henningBunk/dynamic_feature_problem

У меня есть три модуля:

  1. приложение. Основной модуль приложения. Имеет два вкуса продукта:

store: amazon и google
pay_status: free и pro

В результате получается четыре комбинации: amazonFree, amazonPro, googleFree и googlePro

Это зависит от lib и перечисляет dynamic_feature в качестве динамического элемента.

  1. Lib. Модуль библиотеки app и dynamic_feature зависят от этого модуля. lib имеет только аромат pay_status. Поэтому, когда я строю, например. приложение как аромат googleFree, lib создаст его free аромат.

  2. dynamic_feature. Новая функция, которая должна быть динамичной. Этот модуль не должен иметь никаких вкусов. Это зависит от приложения и библиотеки.

Три файла Gradle, уменьшенные до разновидностей продукта и зависимостей, выглядят так:

Модуль приложения build.gradle:

apply plugin: 'com.android.application'

android {
    dynamicFeatures = [":faq"]

    flavorDimensions "store", "pay_status"

    productFlavors {
        google { dimension "store" }
        amazon { dimension "store" }

        free { dimension "pay_status" }
        pro { dimension "pay_status" }
    }
}
dependencies {
    implementation project(':lib')
}

Lib модуль build.gradle:

apply plugin: 'com.android.library'

android {
    flavorDimensions "pay_status"

    productFlavors {
        free { dimension "pay_status" }
        pro { dimension "pay_status" }
    }
}

dependencies {
}

Модуль динамических функций build.gradle:

apply plugin: 'com.android.dynamic-feature'

android {}

dependencies {
    implementation project(':app')
    implementation project(':lib')
}

Это приводит к ошибке:

ERROR: Unable to resolve dependency for ':dynamic_feature@debug/compileClasspath': Could not resolve project :app.
Show Details
Affected Modules: dynamic_feature

Итак, я прочитал, что для модуля dynamic_feature может потребоваться стратегия отсутствующего измерения. Добавление

missingDimensionStrategy "store", "google"
missingDimensionStrategy "pay_status", "free"

в build.gradle dynamic_feature в android.defaultConfig. Таким образом, я могу создать некоторые ароматы, но не все:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...