新的一个项目,需要在Linux下执行aapt命令对apk文件进行处理

开发环境:

MacBook-Pro:appSecuity zhang$ uname -a
Darwin huijundeMacBook-Pro.local 15.6.0 Darwin Kernel Version 15.6.0: Thu Jun 23 18:25:34 PDT 2016; root:xnu-3248.60.10~1/RELEASE_X86_64 x86_64

发布环境:

==

在开发环境下运行aapt命令,可以正常运行,没有错误

huijundeMacBook-Pro:app huijunzhang$ tools/aapt v
Android Asset Packaging Tool, v0.2

但是在Linux下就不行了:

test@qa-autotesting-01016.sqa.hzc:~$~/code$ app/tools/aapt
-bash: app/tools/aapt: cannot execute binary file: Exec format error

到此,猜测可能是由于mac下的aapt文件不能再Linux下执行,正好服务器下找到了Linux版本的sdk

test@qa-autotesting-01016.sqa.hzc:~$ find android-sdk-linux/ -name 'aapt'
android-sdk-linux/build-tools/24.0.0/aapt
android-sdk-linux/build-tools/23.0.1/aapt

按理说这个下边的aapt文件应该可以执行,其实并不是的:

test@qa-autotesting-01016.sqa.hzc:~/android-sdk-linux/build-tools$ 23.0.1/aapt
-bash: 23.0.1/aapt: No such file or directory
test@qa-autotesting-01016.sqa.hzc:~/android-sdk-linux/build-tools$ bash 23.0.1/aapt
23.0.1/aapt: 23.0.1/aapt: cannot execute binary file

还是不可以,怎么回事呢

百度,bing都没有解决我的问题,最后一招就是Google了。。。

首先找到了这个,https://code.google.com/archive/p/android-sdk/,貌似说的是aapt是32位的,不支持64位的,需要的用源码自行编译。。。。

然后又找到了这个,这个,这个....

最后想到了万能的StrackOverflow,找到了这个:http://stackoverflow.com/questions/18041769/error-cannot-run-aapt

执行下面的命令:

sudo apt-get update
sudo apt-get install gcc-multilib lib32z1 lib32stdc++6

安装了好多依赖,漫长的等待后,结束了,试了下

test@qa-autotesting-01016.sqa.hzc~$ android-sdk-linux/build-tools/23.0.1/aapt v
Android Asset Packaging Tool, v0.2-2201634

成功了,耶✌️

再试一下从mac上传的aapt:

huijundeMacBook-Pro:app huijunzhang$ tools/aapt v
-bash: tools/aapt: cannot execute binary file: Exec format error

还是不行,Reason: aapt needs 32-bit libraries installed

解决aapt命令在Linux下无法运行的问题的更多相关文章

  1. svn命令在linux下的使用

    svn命令在linux下的使用 SVN软件版本管理 三 12th, 2008 转载本站文章请注明,转载自:扶凯[[url]http://www.php-oa.com[/url]] 本文链接: [url ...

  2. linux下编译运行驱动

    linux下编译运行驱动 嵌入式linux下设备驱动的运行和linux x86 pc下运行设备驱动是类似的,由于手头没有嵌入式linux设备,先在vmware上的linux上学习驱动开发. 按照如下方 ...

  3. linux 下 tomcat 运行报错 Broken pipe

    linux 下 tomcat 运行报错 Broken pipe 感谢:http://hi.baidu.com/liupenglover/blog/item/4048c23ff19f1cd67d1e71 ...

  4. linux下编译运行TIGL Viewer步骤

    linux下编译运行TIGL Viewer步骤(仅为了正确编译安装的话直接跳到步骤3) 1. linux发行版选择:由于linux发行版众多,不同版本包含的库版本可能存在差别,因此需要选择正确的版本. ...

  5. 解决Qt程序在Linux下无法输入中文的办法

    解决Qt程序在Linux下无法输入中文的办法 一位网友问我怎样在Linux的Qt的应用程序中输入中文,我一開始认为不是什么问题,可是后面自己尝试了一下还真不行.不仅是Qt制作的应用程序,就连Qt Cr ...

  6. 【Qt开发】解决Qt程序在Linux下无法输入中文的办法

    解决Qt程序在Linux下无法输入中文的办法 一位网友问我如何在Linux的Qt的应用程序中输入中文,我一开始觉得不是什么问题,但是后面自己尝试了一下还真不行.不仅是Qt制作的应用程序,就连Qt Cr ...

  7. php 运行linux命令 与 linux下命令行执行php

    1.php运行linux命令 exec函数:string exec(string command, string [array], int [return_var]);  执行函数后不输出结果,返回最 ...

  8. Linux下tomcat运行命令

    tomcat启动 [root@master webapps]# /usr/local/tomcat7.0/bin/catalina.sh start startup.sh的源代码,其实就是执行   c ...

  9. linux下tomcat运行war包常用命令

    一.先是war包copy到 linux 的相关目录,我这的是/opt/soft/tomcat_ecp/webapps. 如果是老项目,在导入war的之前,习惯上是把之前的war备份一下, 如 mv p ...

随机推荐

  1. 走进C++程序世界------继承和派生

    继承和派生 继承是面向对象编程语言的最重要方面之一,正确的使用继承可编写出设计良好,容易于维护和扩展的应用程序.下面是在其他博客中的总结: ****************************** ...

  2. Android设置背景

    一.设置图片背景 首先你先将一个的背景图片存入工程中res/drawble(当然drawble-hdpi.drawble-mdpi.drawble-ldpi中一个或者几个文件夹都可)文件夹中.假如我存 ...

  3. Angular之作用域与事件(转)

    学习Angular,首先要理解其作用域机制. Angular应用是分层的,主要有三个层面:视图,模型,视图模型.其中,视图很好理解,就是直接可见的界面,模型就是数据,那么视图模型是什么呢?是一种把数据 ...

  4. Javascript进阶篇——(流程控制语句)笔记整理

    做判断(if语句)if语句是基于条件成立才执行相应代码时使用的语句.语法: if(条件){ 条件成立时执行代码 } 例子:假设你应聘web前端技术开发岗位,如果你会HTML技术,你面试成功,欢迎加入公 ...

  5. 如何让你的SQL运行得更快

    人们在使用SQL时往往会陷入一个误区,即太关注于所得的结果是否正确,而忽略了不同的实现方法之间可能存在的性能差异,这种性能差异在大型的或是复杂的数据库环境中(如联机事务处理OLTP或决策支持系统DSS ...

  6. PPT 制作必备工具

    1.图标 http://www.easyicon.net/ http://ico.58pic.com/ http://www.iconpng.com/ 2.字体 http://www.qiuziti. ...

  7. xaml控件样式大全(太有用了)C#

    地址:链接:http://pan.baidu.com/s/1jGlMyEi 密码:zaeg http://blog.csdn.net/lhx527099095/article/category/943 ...

  8. JavaScript总结之单击弹出div

    今天也算用了不少手段来实现他们的要求,大概记录一下,下边的代码示例,我全部修改贴出来,争取全部占到自己的代码里就能用. 1.点击同一个div,打开/关闭另一个div. 1 <script typ ...

  9. c#中override重写和new隐藏

    最近学习c#,昨晚看书看到多态.由于个人本身是从事java开发,于是拿来做对比便是自然的. 进入主题吧. c#中,子类要重写基类的方法,必须要基类声明中带有virtual关键字方法或者带有abstra ...

  10. Yii 2.0安装

    通过 Composer 安装 注意: php版本最好在5.5以上! 1.下载 Yii2的高级应用程序模板 ,然后将其解压缩到一个Web可访问的文件夹. 2.下载Composer-Setup.exe , ...