zipalign: 命令未找到 - Ubuntu

9

我正在尝试在Ubuntu 14.04 LTS系统上使用命令行对“input.apk”文件进行zipalign操作,因为我目前还没有访问源代码的权限。如果我没有弄错的话,应该可以使用以下命令进行操作:

zipalign [-f] [-v] 4 intput.apk output.apk

但是我得到了以下输出结果。
zipalign: command not found

我已经确认zipalign文件位于我的...sdk/tools目录中,我不得不从我的...build-tools/android-4.4W文件夹中复制它,因为最初它丢失了。当我按照另一个问题的建议输入这行命令时

./zipalign [-f] [-v] 4 intput.apk output.apk

我得到了以下输出。
Zip alignment utility
Copyright (C) 2009 The Android Open Source Project

Usage: zipalign [-f] [-v] <align> infile.zip outfile.zip
       zipalign -c [-v] <align> infile.zip

   <align>: alignment in bytes, e.g. '4' provides 32-bit alignment
   -c: check alignment only (does not modify file)
   -f: overwrite existing outfile.zip
   -v: verbose output

这是否意味着我需要使用.zip文件而不是我的.apk文件进行zipalign?

https://dev59.com/KG435IYBdhLWcg3wlRMf - keshav
是的,那篇帖子中的答案对我没有用,我想我还是做错了什么。 - himahimahima
尝试运行以下命令:./zipalign -v 4 intput.apk output.apk - Haresh Chhelana
@Haresh 工作了!谢谢你。我猜 -f 和 -c 命令需要一个输出文件才能开始或类似的东西。 - himahimahima
请您批准一下,这样可以帮助其他人吗? - Haresh Chhelana
@himahimahima,请不要将答案编辑为问题。问题应该仅通过单击OP选择的答案旁边的复选框来标记为已解决。 - Charles Duffy
4个回答

19

当使用说明中包含方括号括起来的参数时,这意味着该参数是可选的,可以在最终命令中省略;这些方括号本身并不是命令语法的一部分。

在您的情况下,正确的用法可能如下:

./zipalign -v 4 intput.apk output.apk 

非常感谢您的回答。我花了将近1个小时才找到问题所在...你让我的一天变得美好了,非常感谢! - KK_07k11A0585
很高兴能帮助你,@Jose。 - Haresh Chhelana
在64位机器上运行此命令可能不足以解决问题,会出现“zipalign: error while loading shared libraries: libc++.so: cannot open shared object file: No such file or directory”的错误,就像我遇到的一样... 在这种情况下,我通过liauau在这里提供的答案解决了问题:https://stackoverflow.com/questions/35336697/zipalign-error-while-loading-shared-libraries-libc-so-cannot-open-shared-ob - Antonino

11

在终端中,

cd /opt/android-sdk/build-tools/21.1.2

sudo ln -sf zipalign /usr/bin/

zipalign -v 4 platforms/android/ant-build/MainActivity-release-unsigned.apk platforms/android/ant-build/YOUR_APP.apk

jenkins@ip-172-31-22-20:~/workspace/PP_androidBuild/PatientPortal$ zipalign -v 4 /var/lib/jenkins/workspace/PP_androidBuild/PatientPortal/platforms/android/build/outputs/apk/android-debug.apk Zip对齐实用程序 版权所有(C)2009年Android开源项目 用法:zipalign [-f] [-p] [-v] [-z]<align>infile.zip outfile.zip zipalign -c[-v]<align>infile.zip <align>:以字节为单位的对齐方式,例如“4”提供32位对齐 -c:仅检查对齐(不修改文件) -f:覆盖现有的outfile.zip -v:详细输出 - Ashish Karpe

3
  1. 打开终端(CTRL + t)
  2. cd YOUR_PATH/android-sdk-linux/build-tools/XX.X.X
  3. sudo cp zipalign /usr/bin/
  4. 在终端中打开包含apk文件的文件夹。
  5. 运行zipalign -v 4 YOUR_APK.apk YOUR_APK.apk

0

我曾经遇到过同样的问题。这是我解决它的方法,你所需要的都在这里。
1. 通过在Android Studio中获取sdk路径来获取zipalign路径,例如我的路径是 /Users/s****/Library/Android/sdk
2. 将路径粘贴到终端并cd到“build-tools/28.0.3/zipalign”,现在命令将是
/Users/s****/Library/Android/sdk/build-tools/28.0.3/zipalign
3. 通过在命令中添加-v 4 app-release-unsigned.apk my.apk来在同一条命令行上压缩apk,现在命令将是
/Users/s****/Library/Android/sdk/build-tools/28.0.3/zipalign -v 4 app-release-unsigned.apk my.apk
4. 完成。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接