【问题标题】:Zipalign - Command not found - MAC terminalZipalign - 找不到命令 - MAC 终端
【发布时间】:2011-07-16 16:24:24
【问题描述】:

当我尝试在 apk 上运行 Zipalign 时,我收到错误 "Command not found"

我不太熟悉在 MAC 上使用终端命令,但我已经导航到 SDK/Tools 文件夹并运行以下命令:

zipalign -v 4 Project1.apk Project1-aligned.apk

我得到 Command not found

我尝试将 apk 放在 Tools 文件夹中,结果相同。

有人可以帮助我了解 apk 的位置以及我应该从哪里运行 zipalign 吗?

谢谢,我对此感到非常沮丧,因为它看起来很简单。

【问题讨论】:

    标签: android macos terminal command


    【解决方案1】:

    也许当前目录不在你的路径中?

    尝试在命令前添加“./”

    ./zipalign -v 4 Project1.apk Project1-aligned.apk
    

    【讨论】:

    • 我会试试的,谢谢。我还将包括 apk 的完整路径。
    • +1 为正确答案,@Bill 如果这解决了您的问题,请将此标记为正确答案!它总是鼓励回答问题的人。
    • 按广告宣传的那样为我工作。
    • 版主可以将此标记为答案吗?
    【解决方案2】:

    你可以用这个命令找到正确的路径:

    find ~/Library/Android/sdk/build-tools -name "zipalign"
    

    【讨论】:

    • 您应该获得此评论的荣誉奖章。你救了我的命。谢谢,谢谢,再次感谢!!!
    • 是的,谢谢你。在我的 Mac 上,命令产生:/Users/nicolasscozzaro/Library/Android/sdk/build-tools/28.0.2/zipalign
    • 荣誉勋章送给你!
    【解决方案3】:

    您将在工具文件夹中的/path/to/sdk/build-tools/<build-tools-version>/zipalignNOT 找到 zipalign 工具。

    【讨论】:

      【解决方案4】:
      ~/Library/Android/sdk/build-tools/xxxx/zipalign
      

      将其拖到终端或将其保存在您的路径中。 xxxx -> 版本

      【讨论】:

        【解决方案5】:

        Zipalign 是一个位于$ANDROID_HOME/build-tools/{android-version}/ 的命令。

        希望对您有所帮助。

        【讨论】:

        • ANDROID,而不是 ADROD。但是,谢谢你的回答,它帮助了我。
        【解决方案6】:

        一个简单的单行:

        • 这会在您的配置文件中添加一行,以将包含 zipalign 可执行文件的目录添加到您的路径中
        • 然后重新加载配置文件

        echo "export PATH=\$PATH:~/Library/Android/sdk/build-tools/23.0.1/" >> ~/.bash_profile && . ~/.bash_profile

        确保将 23.0.1 替换为您安装的版本

        $ ls -l ~/Library/Android/sdk/build-tools/
        total 0
        drwxr-xr-x  23.0.1 <---
        

        现在无论您当前的工作目录如何,您都应该能够使用 zipalign

        $ zipalign

        【讨论】:

        • 这更有帮助。
        • drwxr-xr-x 23.0.1
        • 这是真正的答案,因为通过将目录添加到 PATH 也可以找到该目录中的其他工具,例如 aapt
        【解决方案7】:

        在带有 zsh 控制台的 mac 上,我的解决方案是

        命令 1)

        find ~/Library/Android/sdk/build-tools -name "zipalign"
        ----------------------------------------------------------
        /Users/macOs/Library/Android/sdk/build-tools/28.0.3/zipalign
        /Users/macOs/Library/Android/sdk/build-tools/26.0.2/zipalign
        /Users/macOs/Library/Android/sdk/build-tools/25.0.2/zipalign
        /Users/macOs/Library/Android/sdk/build-tools/27.0.3/zipalign
        

        命令 2)

        echo "export PATH=\$PATH:~/Library/Android/sdk/build-tools/28.0.3/" >> ~/.bash_profile && . ~/.bash_profile
        

        命令 3)

        ls -l ~/Library/Android/sdk/build-tools/
        

        命令 4)

        zipalign -v 4 app-release-unsigned.apk nameApp.apk
        

        【讨论】:

          【解决方案8】:

          搜索它并引用它...我有它并像这样引用它:

          /Users/lioncio/Desktop/adt-bundle-mac-x86_64-20140702/sdk/build-tools/android-4.4W/zipalign bla bla bla(命令的所有选项!)

          工作过

          【讨论】:

            【解决方案9】:

            新手(比如我)的 2 小时简历:

            如果你输入这个命令:

            zipalign -v 4 platforms/android/app/build/outputs/apk/release/app-release-unsigned.apk app-release.apk  
            

            女巫给你:

            command not found: zipalign
            

            可能路径有误。 如果你有这个:

            Unable to locate an executable at "/Library/Java/JavaVirtualMachines/jdk1.8.0_201.jdk/Contents/Home/bin/apt" (-1)
            

            它证实了它并不是它应该的样子。因此,要执行 zipalign 并最终发布您的应用,您必须进入正确的存储库并执行命令。

            1.转到正确的仓库执行命令:

            路径是 cd /Users/xxxyour_user_namexxx/Library/Android/sdk/build-tools/xxxxx/

            cd /Users/greg/Library/Android/sdk/build-tools/28.0.3
            

            2。执行你的 zipalign 命令,不要忘记精确 apk 文件的路径:

            显然,“greg”和“myapp”可能会带有您的用户名和应用程序名称。

            ./zipalign -v 4 /Users/greg/Desktop/AppLocal/myapp/platforms/android/app/build/outputs/apk/release/app-release-unsigned.apk /Users/greg/Desktop/AppLocal/myapp/platforms/android/app/build/outputs/apk/release/app-release.apk
            

            希望对你有帮助。

            【讨论】:

              【解决方案10】:

              放松! , 只需在终端中使用 Locate 命令 WHEREVER 就会出来

              tom-MacBook-Air:kavform_app tom$ locate zipalign
              
              /Users/tom/Software/android-sdk-macosx/build-tools/24.0.1/zipalign
              
              /Users/tom/Software/android-sdk-macosx/docs/tools/help/zipalign.html  
              

              就我而言,它被埋在这里

              /Users/tom/Software/android-sdk-macosx/build-tools/24.0.1/zipalign -v 4 /Users/tom/kavwork/kavform/kavform_app/platforms/android/build/outputs/apk/android-release-unsigned.apk BrideToBe.apk
              

              【讨论】:

              • 我认为这行得通只是想让你知道你在第一次运行时就得到了这个并且必须稍等一下:“请注意,数据库可能需要一些时间来生成;一旦数据库已创建,此消息​​将不再出现。”
              【解决方案11】:

              将其添加到路径

              在终端上

              查找 zip 对齐的路径

              find ~/Library/Android/sdk/build-tools -name "zipalign"
              

              路径:/Users/username/Library/Android/sdk/build-tools/26.0.1/zipalign

              输入在那里找到的路径

              sudo nano /etc/paths
              

              现在在新终端上你可以看到 zipalign reco

              【讨论】:

              • 你添加到 /etc/paths 的路径应该没有/zipalign
              【解决方案12】:

              导航到 zip 对齐的路径并将其包含在命令中

              /Users/ignatiusandrew/Library/Android/sdk/build-tools/25.0.2/zipalign 4 android-release-unsigned.apk igi.apk

              【讨论】:

                【解决方案13】:

                Mac 解决方案

                这个错误基本上意味着终端无法找到 zipalign 文件。 因此,您可以使用命令输入 zipalign 文件的完整路径(位于 Android 构建工具文件夹中)

                /Users/username/Library/Android/sdk/build-tools/26.0.1/zipalign -v 4 android-armv7-release-unsigned.apk helloWorld.apk;
                

                如果你不知道 zipalign 文件的位置,那么就使用这个命令

                find ~/Library/Android/sdk/build-tools -name "zipalign"
                

                【讨论】:

                • 有没有办法存储 find 返回的 url?我希望它是动态的
                • 据我所知没有。虽然,您当然可以创建一个获取路径的批处理文件,然后运行命令。
                【解决方案14】:

                如果您在 Windows 上工作,请将命令提示符更改为指向包含 zipalign.exe 的文件夹,然后运行该命令。另外,我发现您没有使用完整的命令:

                zipalign [-f] [-v] 4 Input.apk Output.apk
                

                【讨论】:

                  【解决方案15】:

                  cd android-sdk/build-tools/22.0.0/ - 将目录更改为 android sdk 文件夹,构建工具并选择版本(我使用的是 22.0.0)。

                  然后在提示符处输入:

                  ./zipalign -v 4 /MyApp/android-x86-release-signed.apk ~/MyApp/android-x86-release-signedandzipped.apk
                  

                  这对我有用。我尝试了上面的其他解决方案,但没有成功。我只需要在正确的文件夹中运行命令,但这在我检查的其他资源中没有明确解释。

                  【讨论】:

                    【解决方案16】:

                    对我来说,这非常有效,我将 zipalign 文件从 android 路径复制到我想要运行命令的文件夹,然后键入 ./zipalign -v 4 android-release-unsigned.sdk nameofapp.apk

                    注意:它是在 Mac 上

                    【讨论】:

                      【解决方案17】:
                      %ANDROID_HOME%\\build-tools\\25.0.2\\zipalign -v 4 .\\platforms\\android\\build\\outputs\\apk\\input.apk .\\path\\ output.apk
                      

                      【讨论】:

                      • 嗨,欢迎来到 Stack Overflow!考虑扩展此答案以解释您为什么认为用户无法使此命令工作以及如何像这样执行它来解决问题。此外,可能值得添加一些文本,详细说明用户如何将其添加到他们的 PATH 中,以便他们可以像问题中尝试的 OP 一样执行它。这 2 个编辑将使这个对一个非常古老的问题的答案对于寻找一个好的答案的人更有用。谢谢!
                      【解决方案18】:

                      首先, 如果您的 android home 已设置,那么您可以 cd $ANDROID_HOMEopen .(应该是 - /Users/username/Library/Android/,你也可以直接 cd 到那个路径)

                      接下来,导航到“sdk/build-tools/25.0.3/”(在本例中为 25.0.3 版本,您的版本可能不同)。

                      在您的终端(apk 提示符),将 zipalign 拖到终端并 ...../zipalign -v -p 4 my-app-unsigned.apk my-app-unsigned-aligned.apk。 应该可以正常工作。

                      希望对你有帮助。

                      【讨论】:

                        【解决方案19】:

                        从 github 下载 zipalign 文件

                        zipalign exec copy and paste in your Project1-aligned.apk directory
                        ./zipalign -v 4 Project1.apk Project1-aligned.apk
                        

                        【讨论】:

                          【解决方案20】:

                          就我而言 我按照下面的答案

                          1. 更改目录

                            /path/to/sdk/build-tools//zipalign

                          2. 类型

                            ./zipalign 代替 zipalign

                          简而言之 ./zipalign 是我的解决方案。

                          【讨论】:

                            【解决方案21】:

                            或者,如果您不想将特定的构建工具文件夹添加到路径中,以防将来更改,您可以使用find 命令的第一个结果:

                            $(find ~/Library/Android/sdk/build-tools -name "zipalign" | head -n 1) &lt;your-zipalign-parameters&gt;

                            它在 CI 管道中可能特别有用。

                            【讨论】:

                              【解决方案22】:

                              我正在使用带有 git bash/command promt 的 Windows

                              zipalign.exe 需要在环境变量中配置。

                              因此,将 sdk 文件夹“build-tool”包含在您用于构建的 android 版本文件夹中。

                              e.g. E:\android-sdk\build-tools\22.0.1
                              

                              它应该包含“zipalign.exe”。现在你可以使用

                              zipalign -v 4 Project1.apk Project1-aligned.apk
                              

                              使用命令行工具从任何位置。

                              为我点赞,我可以帮助更多的开发者。

                              【讨论】:

                                猜你喜欢
                                • 2015-09-11
                                • 2021-05-05
                                • 1970-01-01
                                • 2014-09-11
                                • 2016-11-21
                                • 2015-08-28
                                • 1970-01-01
                                • 1970-01-01
                                相关资源
                                最近更新 更多