Zipalign-找不到命令-MAC终端


69

当我尝试在apk上运行Zipalign时出现错误 "Command not found"

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

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

我得到命令找不到

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

有人可以帮助我了解apk的位置以及运行zipalign的位置吗?

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

Answers:


74

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

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

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

我会尽力的,谢谢。我还将包括apk的完整路径。
比尔

3
+1为正确答案,如果解决了您的问题,@ Bill请将此标记为正确答案!!它总是鼓励回答问题的人。
Prasad De Zoysa

按照我的广告工作。
Ruepen '16

60

您可以使用以下命令找到正确的路径:

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

1
您应该为此评论获得荣誉勋章。你救了我的命。谢谢,谢谢,再次感谢!!!
Gozus19

是的,谢谢你的工作。在我的Mac上,命令显示:/Users/nicolasscozzaro/Library/Android/sdk/build-tools/28.0.2/zipalign
Nic Sc​​ozzaro

荣誉勋章为您服务!
艾泽奎尔·塔瓦雷斯


34
~/Library/Android/sdk/build-tools/xxxx/zipalign

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


24

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

希望能有所帮助。


ANDROID,而不是ADROD。但是,感谢您的回答,它对我有所帮助。
Nikola

16

一个简单的单线:

  • 这会在您的配置文件中添加一行,以将包含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


这很有帮助。
Tolga CanGünel2016年

drwxr-xr-x 23.0.1 <---这行没有给我真实的版本号,但是在我修复它之后,它起作用了。谢谢。
SerdarDeğirmenci17年

1
这是真正的答案,因为通过将dir添加到PATH中,也可以找到该目录中的其他工具,例如aapt
Scott Stensland

9

在带有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(命令的所有选项!)

和工作


8

放松点!,只需使用Locate命令在终端无论是什么,它会出来

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

1
我认为这种方法只是想让您知道它是在第一次运行时得到的,并且需要稍等片刻:“请注意,数据库可能需要花费一些时间来生成;一旦创建了数据库,此消息就会不再出现。”
asiammyself

5

新手(像我这样)的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并最终发布您的应用,您必须进入正确的存储库并执行commande。

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

希望能帮助到你。


3

将其添加到路径

在终端上

查找zip align的路径

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

路径: 库/Android/sdk/build-tools/26.0.1/zipalign

输入在那里找到的路径

sudo nano /etc/paths

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


您添加到/ etc的路径/路径应该是没有/zipalign
JanP


2

Mac解决方案

此错误基本上意味着终端无法找到zipalign文件。因此,您可以使用以下命令(位于Android build-tools文件夹中)输入zipalign文件的完整路径:

/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"

有没有一种方法来存储查找返回的URL?我希望它具有动态性
Anjil Dhamala

我所不知道的。虽然,您当然可以创建一个批处理文件来获取路径,然后运行命令。
Abhay Amin

1

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

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

1

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

那对我有用。我尝试了上述其他解决方案,但均未成功。我只需要在适当的文件夹中运行命令,但是在我检查的其他资源中并没有明确解释。


0

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

注意:它在Mac上


0
%ANDROID_HOME%\\build-tools\\25.0.2\\zipalign -v 4 .\\platforms\\android\\build\\outputs\\apk\\input.apk .\\path\\ output.apk

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

0

首先,如果你的Android家里设置,那么你可以 cd $ANDROID_HOMEopen .(这应该是- /用户/用户名/库/安卓/,你可以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。应该工作正常。

希望能帮助到你。


0

从github下载的zipalign-file

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


-1

我正在将Windows与git bash /命令promt一起使用

需要在环境变量中配置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

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

为我竖起大拇指,以便我可以帮助更多的开发人员。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.