1、背景
說起安卓的第三方模擬器,Genymotion是最常用的一個安卓模擬器。它運行速度較快,功能齊全。
我們在剛安裝Genymotion模擬器的時候,打開一個安卓版本的模擬器,將我們的apk拖進去模擬器,發現提示“INSTALL_FAILED_CPU_ABI_INCOMPATIBLE”,app安裝失敗。
這是因為Genymotion的cpu是x86的架構,而我們用的apk并不支持x86架構的。我們去網上搜索解決方案,很多都會直接給一個轉換的zip包。拖進去到Genymotion中再重啟就可以了。
我們再深入地看一下這個問題。
2、關于CPU ABI
ABI(Application Binary Interface): 用程序二進制接口 描述了應用程序和操作系統之間,一個應用和它的庫之間,或者應用的組成部分之間的低
從網上了解到,Genymotion本身處理器是x86,因為版權問題,從 2.0 版本開始提供的虛擬設備都已經移除了 Google Apps 以及 ARM library support(ARM架構兼容)接口。
那app支持什么架構是如何設置的呢?
在我們app的build.gradle設置release選項的時候看到:
是只支持armeabi、armeabi-v7a架構的機器,沒有支持x86了。
這也就解釋了為什么Genymotion中無法直接安裝apk了。
參考文章:
關于Android的.so文件你所需要知道的
讓APK只包含指定的ABI