我也发现过类似的问题,但没有一个问题对我想做的事情很有效。我正在用Android Studio和gradle进行开发,我的构建文件中有几种口味,每种都有一个版本名。有没有办法在APK文件中包含味道的版本名?
编辑:对于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中的依赖项列表: 我使用来避免其他人添加支持库但未发生任何更改。