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

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

Пример кода можно найти здесь. 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 в android.defaultConfig. Таким образом, я могу создать некоторые ароматы, но не все:

0 ответов

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

missingDimensionStrategy не работает.

больше информации здесь: https://proandroiddev.com/advanced-android-flavors-part-4-a-new-version-fc2ad80c01bb

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