当前位置: 首页 > 知识库问答 >
问题:

Android/Gradle:在apk文件名中包含来自味道的版本名

洪胜涝
2023-03-14

我也发现过类似的问题,但没有一个问题对我想做的事情很有效。我正在用Android Studio和gradle进行开发,我的构建文件中有几种口味,每种都有一个版本名。有没有办法在APK文件中包含味道的版本名?

共有1个答案

魏风华
2023-03-14

编辑:对于Gradle工具的现代版本,请使用@ptx的变体(使用output.outputfile代替variant.outputfile:

android {
    applicationVariants.all { variant ->
        variant.outputs.each { output ->
            output.outputFile = new File(output.outputFile.parentFile,
                    output.outputFile.name.replace(".apk", "${variant.versionName}.apk"));
        }
    }
}

从Gradle tools插件版本0.14开始,您应该开始使用以下内容来正确支持多个输出文件(例如,APK拆分):

android {
    applicationVariants.all { variant ->
        variant.outputs.each { output ->
            variant.outputFile = new File(variant.outputFile.parentFile,
                    variant.outputFile.name.replace(".apk", "${variant.versionName}.apk"));
        }
    }
}

对于旧版本:

是的,我们在我们的应用程序中这样做。只需在build.gradle中的android标记中添加以下内容:

android {
    applicationVariants.all { variant ->
        def oldFile = variant.outputFile
        def newPath = oldFile.name.replace(".apk", "${variant.versionName}.apk")
        variant.outputFile = new File(oldFile.parentFile, newPath)
    }
}
 类似资料:
  • 我正在尝试编译一个APK,它在一个JAR文件中使用一个遗留库。 我已经做了其他的问题,但没有一个对我有帮助:1、2、3和4。我甚至在github上发现了一个与我的痛苦gradle/gradle/issues/1184相关的未解决问题--没有列出本地文件依赖关系...这很糟糕,因为我花了很多时间思考文件依赖项没有被包括在内。 总之,这是我项目的build.gradle文件: 这是应用程序的构建.Gr

  • 我需要写一个gradle脚本来在每次提交时自动版本化我的应用程序。我还需要在测试人员的应用程序中包含提交散列作为参考。 我对自动版本控制通常的工作方式感到困惑。有人可以解释自动归因过程吗?

  • 如何使用任务重命名gradle scala插件生成的jar,以包含scala版本名?我相信这个属性被称为:。它是通过java插件提供的(https://docs.gradle.org/current/dsl/org.gradle.api.Project.html#org.gradle.api.Project:archivesBaseName). 注意:我希望使用kotlin DSL完成此任务。 对

  • 我的android应用程序中有很多未使用的图像。这些映像被放置在项目根目录的单独文件夹中。它们不会在项目中的任何地方使用,但我需要保留它们。 我关心的是,这些未使用的映像会被包含在apk文件中吗?因为有很多,并且增加了apk文件的大小。

  • 我试图在我的“Java”gradle项目中包含一个本地jar文件。我已经在Project的“main/resource”文件夹中添加了jar文件。在Build.Gradle中添加了以下行:-

  • 我在中使用了,但在探索外部库时,我看到了两个版本的support-v4库(23.3.0和24.0.0)。我如何找到哪个依赖项使用了Support-V4:24.0.0库?我如何强制gradle只添加23.3.0版本? 这是我在build.gradle中的依赖项列表: 我使用来避免其他人添加支持库但未发生任何更改。