在gradle插件中获取应用程序变体的包名称

Edw*_*ale 14 android gradle android-gradle-plugin

我正在构建一个gradle插件,为每个应用程序变体添加一个新任务.此新任务需要应用程序变体的包名称.

这是我目前的代码,它停止使用最新版本的android gradle插件:

private String getPackageName(ApplicationVariant variant) {
    // TODO: There's probably a better way to get the package name of the variant being tested.
    String packageName = variant.generateBuildConfig.packageName

    if (variant.processManifest.packageNameOverride != null) {
        packageName = variant.processManifest.packageNameOverride
    }
    packageName
}
Run Code Online (Sandbox Code Playgroud)

由于构建配置处理的更改,这已停止在最新版本的android插件中工作.无论如何它似乎是一个黑客,所以我不会感到惊讶它停止工作.是否有规范的方法来获取包名称?

ste*_*ter 6

我用这个:

// Return the packageName for the given buildVariant
def getPackageName(variant) {
    def suffix = variant.buildType.packageNameSuffix
    def packageName = variant.productFlavors.get(0).packageName
    if (suffix != null && !suffix.isEmpty() && suffix != "null") {
        packageName += suffix
    }
    return packageName
}
Run Code Online (Sandbox Code Playgroud)

  • 在Android Gradle插件版本0.11(及更高版本)中,“ packageNameSuffix”已更改为“ applicationIdSuffix”。 (2认同)