当outputDirectory或outputFileName更改时,启动调试应用程序时,AS无法找到apk

问题描述

我正在使用Android Studio调试应用程序。 由于某些原因,我必须更改默认的输出apk目录和文件名。所以我在应用程序的build.gradle脚本中更改了applicationVariants的outputDirectory和outputFileName。 此修改使apk输出到预期的位置和名称。 但是我发现一个问题是,当我像以前一样开始调试应用程序时,AS表示:

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

List of apks:
[0] 'C:\Users\progquest\projects\Study\app\build\outputs\apk\free\debug\app-free-debug.apk'
Installation failed due to: 'Invalid File: C:\Users\progquest\projects\Study\app\build\outputs\apk\free\debug\app-free-debug.apk'

注意:“免费”是我应用程序的一种产品。

显然,调试器仍然使用旧的默认输出目录和apk文件名来查找源apk。如何更改?

谢谢。

解决方法

这发生在我身上;在我取消选择然后在“构建变体”工具中重新选择正确的“活动构建变体”后,它再次开始工作(即使它已经被选中)。

,

在同一目录中有一个名为output-metadata.json的文件。

此文件的内容在我的系统上如下所示:

{
  "version": 2,"artifactType": {
    "type": "APK","kind": "Directory"
  },"applicationId": "com.example.sample","variantName": "debug","elements": [
    {
      "type": "SINGLE","filters": [],"versionCode": 1,"versionName": "1.0","outputFile": "app-debug.apk"
    }
  ]
}

从我的测试看来,更改"outputFile"中的路径(即当前指出"app-debug.apk"的字段)会使Android-studio接受更改。


或者:使用该属性来更改apk名称-

android {
    ...
    defaultConfig {
        ...
        setProperty("archivesBaseName","MyNewAppNameGoesHere")
    }
}

这将设置apk名称的一部分,并且还会适当地更新output-metadata.json,以便Android Studio可以选择它。

请参阅https://stackoverflow.com/a/39202249/2923245

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...