zipalign:找不到命令

时间:2015-06-25 10:48:13

标签: android bash ionic-framework ionic

我现在正致力于Ionic项目,我希望zipalign android-release-unsigned.apk文件。我跟着this guide by Ionic

当我运行zipalign -v 4 /Users/zulhilmizainudin/Desktop/kl-parking/platforms/android/build/outputs/apk/android-release-unsigned.apk android-release.apk命令时,出现-bash: zipalign: command not found错误。

这是zipalign在我的系统中的位置:

/Users/zulhilmizainudin/Library/Android/sdk/build-tools/21.1.2

我尝试在其中复制zipalign并将其放入我的Ionic项目文件夹并再次运行zipalign命令。但仍然没有找到相同的命令。

我现在该怎么办?

9 个答案:

答案 0 :(得分:58)

解决!

  1. 我将Library/Android/sdk/build-tools/21.1.2中的 zipalign 文件复制到我的Ionic项目文件夹中

  2. 我在zipalign命令前添加./,如下所示 - ./zipalign -v 4 /Users/zulhilmizainudin/Desktop/kl-parking/platforms/android/build/outputs/apk/android-release-unsigned.apk android-release.apk

  3. 完成。现在我在Ionic项目文件夹中得到 android-release.apk

  4. 感谢迈克尔的解决方案!

答案 1 :(得分:14)

如果您使用 Windows ,正确的方法是将zipalign.exe的路径添加为PATH环境变量。

  1. 查找 zipalign.exe 位于您的PC中的位置,在我的情况下,这是
  2.   

    C:\用户\随机名\ AppData \本地\的Android \ sdk1 \构建工具\ 24.0.1

    1. 然后将此位置添加为PATH environment variable
    2. 中的一个条目

答案 2 :(得分:11)

为了避免在构建发布版本时指定或导航到sdk / build-tools / *目录,您可以简单地添加环境变量的路径。

  

$ sudo nano~ / .bash_profile

复制并粘贴以下内容:

  

export PATH = $ {PATH}:/ Library / Android / sdk / build-tools / 21.1.2

然后您可以保存并退出

  

control + o //保存到文件   control + x //关闭文件   $ souce~ / .bash_profile

然后,您可以从项目CLI目录运行zipalign。

答案 3 :(得分:1)

如果要进行离子释放构建,则可以使用以下信息在应用程序的根文件夹中构建build.json文件

{
"android": {
   "release": {
   "keystore": "Your keystore",
   "storePassword": "password",
   "alias": "alias name",
   "password" : "password",
   "keystoreType": ""
    }
}  }

确保您可以将密钥库放置在应用程序的根文件夹中,或在密钥库对象上提供密钥库的完整路径

现在您可以按以下方式运行此命令

ionic cordova build android --release

此命令会自动找到您的build.json并进行签名发行。

答案 4 :(得分:0)

自从USB live安装程序安装Kali以来,我遇到了几个问题。 我发现我需要将其添加到sources.list文件夹中的 /etc/apt 文件中。 只需将sources.list的内容替换为:

deb http://http.kali.org/kali kali-rolling main contrib non-free
deb-src http://http.kali.org/kali kali-rolling main contrib non-free
deb http://old.kali.org/kali sana main non-free contrib
deb http://ftp.de.debian.org/debian wheezy main

答案 5 :(得分:0)

您应该为APK做(对齐,签名和验证)。 在Mac中,您应该执行以下步骤:

A-对齐APK:

1-您应在Android SDK中找到您的构建工具 zipalign

/Users/mina/Downloads/sdk/build-tools/29.0.3/zipalign

2-您应该找到您的未签名的APK

 /Users/mina/Desktop/apks/app_unsigned.apk

3-您应该运行命令包含:

zipalign_path + -v -p 4 + unsigned_apk_path + output_aligned_apk_name

/Users/mina/Downloads/sdk/build-tools/29.0.3/zipalign -v -p 4 
/Users/mina/Desktop/apks/app-unsigned.apk app_aligned.apk

4-输出成功通过验证

B-签署APK:

1-您应该在Android SDK中找到您的构建工具 apksigner

/Users/mina/Downloads/sdk/build-tools/29.0.3/apksigner

2-您应该在PC中找到发布密钥库:

/Users/mina/Desktop/keys/release-Keystore.jks

3-您应该运行命令包含:

apksigner_path + 签署--ks + release-Keystore_path + -out + output_signed_apk_name + from_aligned_apk_name

/Users/mina/Downloads/sdk/build-tools/29.0.3/apksigner sign --ks 
/Users/mina/Desktop/keys/release-keystore.jks                                                    
 --out app_signed.apk app_aligned.apk

4-输入您的密钥存储区密码

C-验证APK:

1-运行以下命令:apksigner_path +验证+ app_signed.apk

/Users/mina/Downloads/sdk/build-tools/29.0.3/apksigner verify 
app_signed.apk

注意:您可能会发现一些警告:

 WARNING: META-INF/.... 

这是一些有关此的描述:

Apk Metainfo Warning

实际上,这些文件并不重要,它们主要是您所依赖的库的版本,因此,即使有人修改了这些文件,也不会对您的应用程序产生任何影响。这就是为什么这只是一个警告:APK中的那些文件可以被其他人修改,同时仍然假装APK由您签名,但是这些文件并不重要。

D-查找已签名的APK:

/Users/mina/app_signed.apk

答案 6 :(得分:0)

解决了!

我将zipalign文件复制为Michael Said (从我的Library / Android / SDK / build-tools / 28.0.3到我的Ionic项目文件夹中)

但我跑步时

./zipalign -v 4 app-release-unsigned.apk botellamovil.apk

我知道了

./zipalign: ERROR while loading shared libraries: libc++.so: cannot open shared object file: **No such file or directory**

因此,我还复制了 lib&lib64 文件,然后它可以正常工作!

我希望这会有所帮助:)(对不起我的英语)

答案 7 :(得分:0)

这在Mac上对我有用。安装并运行Android Studio(重要的是一次性启动它)。 然后找到zipalign:

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

答案 8 :(得分:-1)

我通过将 zipalign 路径设为环境变量解决了这个问题:

export ZIPALIGN_PATH=~/Library/Android/sdk/build-tools/30.0.3/zipalign

然后我在尝试运行的脚本中将 zipalign 替换为 $ZIPALIGN_PATH