OSX系统下在正确目录执行aapt仍提示命令未找到问题咨询
为什么在aapt所在目录执行仍提示"command not found"?
这问题我之前折腾Android开发的时候也碰到过,主要有几个常见原因,咱们一个个说:
1. Bash 默认不搜索当前工作目录
Bash 的$PATH环境变量里默认是不包含当前目录(./)的,所以哪怕你已经cd到/Users/username/Library/Android/sdk/build-tools/27.0.3,直接输入aapt的话,bash只会去$PATH里列出的目录找这个命令,完全不会看当前文件夹。
解决办法:执行命令时加上当前目录的前缀,也就是:
./aapt
2. aapt 缺少可执行权限
虽然你用ls能看到这个文件,但它可能没有被设置为可执行状态。你可以先查看权限:
ls -l aapt
如果输出里的权限列(比如-rw-r--r--)没有x(可执行)标识,就需要给它加上权限:
chmod +x aapt
加完权限后再用./aapt执行试试。
3. 架构不兼容(概率较低)
OS X Sierra 是比较老的系统,Android Build Tools 27.0.3 里的aapt可能是针对更高版本 macOS 编译的,导致你的系统无法运行它。可以用file命令查看文件架构:
file aapt
如果输出显示的架构和你的系统不匹配(比如你的是32位系统但文件是64位,不过Sierra都是64位),可能需要降级Build Tools版本或者升级系统,但这个情况很少见,优先排查前两个原因。
内容的提问来源于stack exchange,提问作者the_prole
相关产品推荐
相关产品推荐

