【问题标题】:Can't add a dynamic feature module because of build flavor problems由于构建风味问题,无法添加动态功能模块
【发布时间】:2019-09-03 00:56:16
【问题描述】:

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

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

我有三个模块:

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

storeamazongoogle
pay_statusfreepro

产生四种组合: 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。这样我可以构建一些口味,但不是全部:

【问题讨论】:

  • 嗨有同样的问题,就我而言,我只是忘记在一个模块中用apply plugin: 'com.android.dynamic-feature'替换apply plugin: 'com.android.feature'.... ????
  • 你确定我们有同样的问题吗?因为我已经在使用''com.android.dynamic-feature''。我的问题在于不同的构建变体。
  • 相当肯定......也许有不止一种方法可以得到这个错误。

标签: android gradle dependencies dynamic-feature


【解决方案1】:

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

missingDimensionStrategy 不起作用。

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

【讨论】:

    猜你喜欢
    • 2020-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-17
    • 1970-01-01
    相关资源
    最近更新 更多