執行adb install命令安裝軟件到Genymotion模擬器時報錯,提示Failure [INSTALL_FAILED_NO_MATCHING_ABIS]


使用adb命令遠程在Genymotion上安裝apk軟件時,執行命令報錯,如下

C:\WINDOWS\system32>adb install C:\Users\lly\Downloads\Wandoujia.apk
Performing Push Install
C:\Users\lly\Downloads\Wandoujia.apk: 1 file pushed. 50.7 MB/s (14476557 bytes in 0.272s)
pkg: /data/local/tmp/Wandoujia.apk
Failure [INSTALL_FAILED_NO_MATCHING_ABIS]

查看了一下資料,原因如下:

由於安裝的APP中使用了與當前CPU架構不一致的native libraries,所以導致報錯,因為現在絕大多數的智能手機還都是采用ARM架構的,雖然android是支持ARM和x86架構,但是它們的指令集是有差別的,APP在開發的時候使用的是ARM的本地庫,而我們在用AVD創建模擬器的時候使用的是x86的CPU,因此導致報錯。所以,如果APP是在x86架構下編譯的我們就創建x86cpu的模擬器,如果APP是在ARM架構編譯的我們就創建ARMcpu的模擬器。

解決辦法:

解決問題可以分為兩個方法:

方法一、讓genymotion模擬器支持arm架構。

既然創建的是x86模擬器,那么需要使用轉換包使其能夠支持arm。

下載ARM_Translation_Marshmallow 包,啟動模擬器,把這個zip文件直接拖進模擬器,提示中點擊OK,顯示如下圖則表示安裝成功

然后我們重啟一下模擬器再次嘗試安裝app,重啟的時候可能會慢一點。

 

方法二、讓該app項目將arm和x86的文件都包含進去。

可以在app的build.gradle中的android{}添加如下內容:

splits {
abi {
enable true
reset()
include ‘x86’, ‘armeabi-v7a’,‘x86_64’
universalApk true
}
}

 

 


其中對應的含義如下所示:

 

 

一般情況下第一中方法即可解決,如果不行可以嘗試第二種方法

 

參考資料:

https://blog.csdn.net/Leafage_M/java/article/details/86675699


免責聲明!

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



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