apksigner:找不到命令

Roh*_*ngh 6 android android-studio android-app-signing apksigner

规格:

  • Android Studio 版本:Android Bumblebee
  • Android 构建 SDK 构建工具:30.0.3
  • Android SDK 命令行工具:7.0

我正在尝试使用 apksigner 签署 apk。我在 Android Studio 终端中使用此命令

apksigner sign --ks release.jks app.apk
Run Code Online (Sandbox Code Playgroud)

我正在遵循官方文档,但收到此错误

bash: apksigner: command not found
Run Code Online (Sandbox Code Playgroud)

当我进一步挖掘时,我发现 Android/sdk/cmdline-tools/7.0/bin 没有 apksigner,它有以下命令行工具

在此输入图像描述

我在这里缺少什么?我尝试下载cmdline-tools/6.03.0但没有看到 apksigner。

Roh*_*ngh 11

您需要在 bash 配置文件中添加路径变量

我根据与 Commansware 和 Pierre 关于 Commansware 答案的讨论写了这个答案。

让我们讨论这些问题来修复Android Studio 上未找到命令的问题。

apksigner 在哪里?

您可以在以下位置找到 apksigner:Android/sdk/build-tools/30.0.3

如何通过终端使用 apksigner?

  1. 使用绝对路径(痛苦的方式)

    $ ~/Library/Android/sdk/build-tools/30.0.3/apksigner 验证 ~/Desktop/app-release.apk

  2. 使用 $path 变量(聪明的方式)

    $ apksigner 验证 ~/Desktop/app-release.apk

为此,您需要在 bash 配置文件中设置一个路径变量

如何设置路径变量?

将其添加到您的 bash 配置文件中

export PATH="$PATH:$HOME/Library/Android/sdk/build-tools/30.0.3"
Run Code Online (Sandbox Code Playgroud)

现在您应该能够$ apksigner verify ~/Desktop/app-release.apk在任何地方运行,甚至在 Android Studio 终端内。

仍然无法在 Android Studio 上运行该命令?

apksigner就我而言,即使设置路径变量后我也无法运行命令。所以export PATH="$PATH:$HOME/Library/Android/sdk/build-tools/30.0.3"在Android Studio终端上写的。它成功了!

额外讨论

apksigner 是Android Studio CLI 工具的一部分。但我发现除了 apksigner 之外,其他 Android Studio CLI 工具(d8、avdmanager、aapt 等)命令默认工作。我不知道是我一个人有这样的情况,还是其他人也有这样的情况。