新的一个项目,需要在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. tomcat使用说明

    tomcat使用说明   1.tomcat的目录结构及说明: 2.发布WEB应用 1).将应用目录达成war包.(将html.jsp.images.WEB-INF目录和当前目录下的所有后缀名为jsp. ...

  2. C++ primer学习记录(个人猜想未测试版本)

    学习版本:第五版. 本博文主要记录个人曾经并不知晓知识细节. 因为linux下的编译环境还未进行学习.所以实际代码测试将在今后完成. 红色:需确认. 蓝色:重点. 1)const对象设定为仅在文件内有 ...

  3. 关于tomcat的远程调试

    最近做项目开发发现,在本地运行好好的项目发布到测试服务器既然不好使了,很是郁闷,周围的大神们就给了一条明路:远程调试 查看了网上例子太多了,好像自己真的不会使用,就查了一些简单的资料发现其实很简单 下 ...

  4. 【搜索引擎Jediael开发笔记】v0.1完整代码

    详细代码请见 E:\Project\[重要]归档代码\SearchEngine归档代码 或 https://code.csdn.net/jediael_lu/jediael/tree/10991c83 ...

  5. 【转】【可用】Android 登录判断器,登录成功后帮你准确跳转到目标activity

    我们在使用应用时肯定遇到过这样的情景,打开应用,并不是需要我们登录,你可以浏览应用中的大部分页面,但是当你想看某个详情页的时候,点击后突然跳转到了登录页面,好,我们输入账号密码,点击登录,登录成功,跳 ...

  6. mutex 和 spinlock 对比

    理论上: mutex和spinlock都是用于多进程/线程间访问公共资源时保持同步用的,只 是在lock失败的时候处理方式有所不同.首先,当一个thread 给一个mutex上锁失败的时候,threa ...

  7. 也谈谈关于WEB的感想

    距离上次在博客园发表博文已经是数年以前了,想想自己也确实有够懒惰的,实为不该. 引起我想发这篇博文的原因是 @Charlie.Zheng 所发表的 <Web系统开发构架再思考-前后端的完全分离& ...

  8. Linux下,命令 wget 的使用

    wget是一个从网络上自动下载文件的自由工具.它支持HTTP,HTTPS和FTP协议,可以使用HTTP代理.  所谓的自动下载是指,wget可以在用户退出系统的之后在后台执行.这意味这你可以登录系统, ...

  9. PHP学习笔记,自己动手写个MVC的框架 -- base所有代码

    <?php /** 名称:基础类 作用:引用参数处理类,加载基础配置, 作者:swordphp@126.com 创建日期:2013-07-31 **/ require_once(ROOT_PAT ...

  10. angular 入门教程1

    使用angularjs也有一年之久了.从初识angularjs时的激动和兴奋到现在淡定的使用,这其中也是有不少的心酸(刚用的时候和各种js插件的配合使用快把我弄疯了). 细想起来.用MVVM的这种js ...