Не удается добавить модуль динамических функций из-за проблем со сборкой
Я хотел внедрить новый динамический функциональный модуль в существующее приложение, но мне пришлось отказаться от него из-за проблем со вкусом продукта.
Пример кода можно найти здесь. https://github.com/henningBunk/dynamic_feature_problem
У меня есть три модуля:
- приложение. Основной модуль приложения. Имеет два вкуса продукта:
store
: amazon
а также google
pay_status
: free
а также pro
В результате в четырех комбинациях: amazonFree
, amazonPro
, googleFree
а также googlePro
Это зависит от lib
и списки dynamic_feature
как динамическая особенность.
Lib. Библиотечный модуль,
app
а такжеdynamic_feature
зависит от этого модуля.lib
только имеетpay_status
аромат. Поэтому, когда я строю, например. приложение какgoogleFree
вкус, lib будет строить этоfree
аромат.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