解決aapt命令在Linux下無法運行的問題


新的一個項目,需要在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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM