将manifestPlaceholders中的值设置为applicationId

时间:2016-02-15 23:21:38

标签: android android-gradle android-manifest build.gradle

我正在尝试在应用程序中配置一些SDK,我正面临着这个问题,这让我很头疼。我要做的是设置低于值

manifestPlaceholders = [manifestApplicationId: "$applicationId"]

类似com.flavorA.debug用于调试构建,老实说我不知道​​我应该如何设置它。如果我将此部分放到defaultConfig,那么我在清单文件中得到null。如果我把它放到productFlavors部分然后我只得到com.flavorA,所以我缺少buildType后缀。

我也在尝试不同的事情,比如

applicationVariants.each{ variant->
    manifestPlaceholders = [manifestApplicationId: "test"]
}

但是上面甚至没有更改名称进行测试,也没有提及其他内容。

我怎么用gradle解决这个问题?

1 个答案:

答案 0 :(得分:0)

您不需要manifestPlaceHolders或applicationVariants块来实现此目的。清单中的applicationId和包名称是分离的,因此您只需编写:

productFlavors {
   pro {
       applicationId = "com.example.my.pkg.pro"
   }
   free {
       applicationId = "com.example.my.pkg.free"
   }
}

如果您想为构建类型更改它:

buildTypes {
    debug {
        applicationIdSuffix ".debug"
    }
}

此处有更多详情:

applicationid-vs-packagename