gradle 按需功能模块出现错误-无法计算属性“applicationId”的值,集合为空

fumotvh3  于 2023-05-18  发布在  其他
关注(0)|答案(1)|浏览(233)

在我的base(:app)模块build.gradle文件中(在defaultConfig块下)

applicationId "com.example.mobile"

在我的动态特性模块build.gradle中,我有(在defaultConfig块下)

applicationId "com.example.mobile.ondemand"

类似地,在基本模块的清单中,我有

package="com.example.mobile"

在动态特征模块的表现形式中,我有

package="com.example.mobile.ondemand"

我已经尝试了很多解决方案,我已经将gradle和jdk升级到最新版本,我已经尝试从动态功能模块中删除applicationId和package值。此外,我坚持所有的指导方针所提到的谷歌实现按需功能模块。但我还是得到这个问题,每次我建立

Execution failed for task ':ondemand:generateDebugBuildConfig'.
> Failed to calculate the value of task ':ondemand:generateDebugBuildConfig' property 'applicationId'.
   > Failed to calculate the value of property 'applicationId'.
      > Collection is empty.

如果你能帮上忙我会很感激的。

xmjla07d

xmjla07d1#

确保动态功能模块中的风格和构建类型与应用模块中的风格和构建类型完美匹配。这包括匹配任何setIgnore(true)组合的逻辑。
例如,如果您的应用同时具有“内部”和“生产”风格,请确保在您的动态功能模块中包含以下内容:

android {
//...
    buildTypes {
        debug
        release
    }

    productFlavors {
        internal
        production
    }
}

如果您不允许在主应用模块中使用任何构建变体组合,请将用于此的逻辑复制到动态功能模块中,例如:

variantFilter { variant ->
        def names = variant.flavors*.name
        if (names.contains('production') && variant.buildType.name == 'debug') {
            setIgnore(true)
        }
    }

相关问题