【问题标题】:Changing release apk file path更改发布 apk 文件路径
【发布时间】:2020-06-08 04:01:33
【问题描述】:

Android 发布 apk 在

中创建
...\Foo\Foo\build\outputs\apk\release\foo.apk

如何更改此路径?

我想将我的 apk 保存在特定路径中的某些项目中。

这可能吗?

【问题讨论】:

  • 你用的是哪个版本的android studio和gradle?
  • @UmarHussain Android Studio:3.5.3,gradle:3.2.1
  • 看看这个脚本是否有帮助:gist.github.com/shakalaca/6422811

标签: android-studio android-gradle-plugin apk


【解决方案1】:

是的,这是可能的。您可以设置生成 apk 的位置, 在您的项目级别 build.gradle 在 allprojects 中添加您需要的路径:

allprojects {
    buildDir = "/D:/Foo/Bar/Android/Build/"
    ...
}

这将在指定路径的 Build 文件夹内创建您的 apk 以及生成的、中间体、临时等文件夹。如果您希望在具有项目名称等的文件夹中生成它,请使用:

buildDir = "/D:/Foo/Bar/Android/Build/${rootProject.name}/${project.name}"

如需更多参考,您可以查看this answer

更新: 我找不到任何方法可以直接将发布 apk 生成到某个特定文件夹中,但是如果可以将此 apk 的副本保存到另一个文件夹中,则可以使用 gradle 的Copytask 来实现这一点。在您的 APP 级别的 gradle 中,您可以尝试以下我测试的代码。

afterEvaluate {
    // to execute the copy task every time a release build is generated
    packageRelease.finalizedBy(copyRelease)
}

task copyRelease(type: Copy) {
    // set your paths here
    def sourcePath = file ("/release/app-release.apk").absolutePath
    def destinationPath = "/D:/Foo/Bar/Android/Build/"
    // set a name for your build if you are going to rename it
    def releaseName = "${rootProject.name}.apk"

    from "$sourcePath"
    into "$destinationPath"
    //use the below line if you wish to rename the apk
    rename { releaseName }
}

即使它建议将其添加到 android {...} 块中,只需将其添加到外部似乎也可以。因此,即使 apk 没有直接生成到您的文件夹中,任务也会复制相同的内容以将其保存到您选择的文件夹中。

如果您需要它进行调试构建,请改用 packageDebug 并相应地更改您的路径。

希望这就是您想要的。

【讨论】:

  • 这将创建您所说的所有文件夹(生成、中间、临时等文件夹)。我已经尝试过这个解决方案,但我只想 apk 文件。
  • 已经用一种方法更新了我的答案,将发布 apk 的副本保存到某个文件夹中。看看它是否适合你。 @Umar 对 gist link 的评论似乎有点过时,但确实指向了正确的方向
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-26
  • 2016-05-11
  • 2012-08-04
  • 2021-09-29
  • 2020-09-24
相关资源
最近更新 更多