AS 在 outputDirectory 或 outputFileName 更改时启动调试应用程序时找不到 apk

AS can not find the apk when starting debug app when outputDirectory or outputFileName changed

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

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'

注意:'free' 是我的应用程序的产品风格。

显然,调试器仍然使用旧的默认输出目录和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-name-

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

这设置了 apk 名称的一部分,并且还适当地更新了 output-metadata.json,以便 Android 工作室选择它。

这件事发生在我身上;在我取消选择然后在“Build Variants”工具中重新选择正确的“Active Build Variant”后它又开始工作了(即使它已经被选中)。