Gradle 中修改了 apk 的输出目录, Android Studio 中调试 app 的时候找不到对应的 apk 文件。

2020-09-08 15:08:53 +08:00
 howellz

在 app 的 build.gradle 中通过outputDirectoryoutputFileName修改目标 apk 文件的输出目录后,使用菜单"Run"->"Debug app..."时就会失败,提示 apk 文件无效(提示的是仍然默认的输出文件目录和文件名)。

错误提示如下:

Installation did not succeed.
The application could not be installed.

List of apks:
[0] 'C:\Android\Test\app\build\outputs\apk\debug\app-debug.apk'
Installation failed due to: 'Invalid File: C:\Android\Test\app\build\outputs\apk\debug\app-debug.apk'
Retry

修改版本输出目录的脚本如下:

applicationVariants.all { variant ->
        variant.outputs.all { output ->
            def app = applicationId
            def type = variant.buildType.name
            def releaseApkName = "${app}-${versionCode}.apk"
            variant.packageApplicationProvider.get().outputDirectory = new File("build/apk/${type}")
            outputFileName = releaseApkName
        }
    }
}
9626 次点击
所在节点    Android
6 条回复
Macolor21
2020-09-08 18:18:11 +08:00
Run “-> Debug App...”这一步通过参数指定 APK 文件地址试试?
firemeteor
2020-09-08 18:41:04 +08:00
4
howellz
2020-09-08 20:39:08 +08:00
@Macolor21 请问具体是怎么指定啊?只看到 Depoly 中有"Default APK", "APK from app bundle", "Custom artifact"和"nothing",并没有看到具体如何指定 apk 的位置。谢谢~
likaci
2020-09-08 21:00:27 +08:00
if (variant.buildType.name != "debug") {
variant.getPackageApplicationProvider().get().outputDirectory = new File(project.rootDir.absolutePath + "/release")
}
howellz
2020-09-08 21:23:05 +08:00
@likaci 谢谢回复,这种修改输出目录时过滤 debug 版本的方法是我正在用的方法,但是我想找到更加规范的做法。
zhuz
2020-11-04 21:32:30 +08:00
遇到了同样的问题,大佬有找到方法嘛

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/705210

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX