gpt4 book ai didi

android - 由于构建风格问题,无法添加动态功能模块

转载 作者:行者123 更新时间:2023-11-29 00:54:38 26 4
gpt4 key购买 nike

我想在现有应用中实现一个新的动态功能模块,但由于产品 flavor 问题不得不放弃。

示例代码可以在这里找到。 https://github.com/henningBunk/dynamic_feature_problem

我有三个模块:

  1. 应用程序。应用程序的主要模块。它有两种产品口味:

store:amazongoogle
pay_status:免费专业版

产生四种组合:amazonFreeamazonProgoogleFreegooglePro

它依赖于 lib 并将 dynamic_feature 列为动态功能。

  1. 库。库模块 appdynamic_feature 依赖于此模块。 lib 只有 pay_status 风格。所以当我建立例如。应用程序作为 googleFree 风格,lib 将构建它的 free 风格。

  2. 动态特征。新特征应为动态特征。这个模块不应该有任何风格。这取决于应用程序和库。

三个 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"

将dynamic_feature build.gradle 改成android.defaultConfig。这样我就可以构建一些口味,但不是全部:

enter image description here

最佳答案

我找到了解决方案,但并不令人满意。所有构建风格都必须在动态功能模块中实现,以便可以实际构建所有构建风格。

missingDimensionStrategy 不起作用。

更多信息在这里:https://proandroiddev.com/advanced-android-flavors-part-4-a-new-version-fc2ad80c01bb

关于android - 由于构建风格问题,无法添加动态功能模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55648582/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com