[Android] 在 Genymotion 模擬器裡,安裝含有 ARM 原生碼的 app
今天想把 Vacron Viewer 這個 app 裝進 Genymotion 模擬器裡,
但把 APK 拉進模擬器時,出現了錯誤訊息,
說這 app 裡含了 ARM 原生的程式碼,
因為 Genymotion 本身是 x86 架構,因此無法安裝:
用 adb install,則會出現 INSTALL_FAILED_NO_MATCHING_ABIS 的錯誤訊息,
但意義是一樣的:
testuser@localhost $ adb install VacronViewer_v1.15.0.apk /Users/testuser/VacronViewer_v1.15.0.apk: 1 file pushed. 54.7 MB/s (11006958 bytes in 0.192s) pkg: /data/local/tmp/VacronViewer_v1.15.0.apk Failure [INSTALL_FAILED_NO_MATCHING_ABIS]
上網查了一下,已經有人寫了 ARM Translation 這個工具來解決這個問題。
來試試把它裝進 Genymotion 模擬器吧~
1. 下載 ARM Translation v1.1 zip
下載 Genymotion-ARM-Translation_v1.1.zip 這個檔案。
2. 安裝 ARM Translation
將這 zip 檔案,拉到 Genymotion 模擬器裡面,
會出現下面的警告訊息,按 OK 繼續:
(確實有可能損壞模擬器,
擔心的話可以在 VirtualBox 那邊先做快照 (Snapshot))
很快就安裝好:
重新再將 Vacron Viewer 的 APK 拉到模擬器了,這時就安裝成功了。
用 adb install 安裝也是一樣成功:
testuser@localhost $ adb install -r VacronViewer_v1.15.0.apk VacronViewer_v1.15.0.apk: 1 file pushed. 50.2 MB/s (11006958 bytes in 0.209s) pkg: /data/local/tmp/VacronViewer_v1.15.0.apk Success
裝好的 app 也確實可以執行:
要注意的是,ARM Translation 似乎和 Open GApps 不合,
我之前先裝了 Open GApps 之後,再來裝 ARM Translation,
結果 Wi-Fi 網路就再也連不上了…
後來我是把模擬器刪掉,重新建立一個模擬器,
這次不裝 Open GApps,直接安裝 ARM Translation,似乎就無異狀…
目前還沒找到兩全其美的方法,
就只能一個模擬器裝 Open GApps (有 Google Play 商店),
另一個模擬器裝 ARM Translation 工具了~
備註:並不是所有 Android 版本的模擬器都能安裝 ARM Translation,
我在 Android 8.0 的模擬器安裝時,
會出現 Genymotion failed to flash 的錯誤訊息:
就算能安裝 ARM Translation,也不一定能正常運作。
目前測過 Android 4.1.1 和 4.3 版是沒有問題的;
但像 4.4.4 雖然可以裝 ARM Translation,
可是我安裝完 Vacron Viewer,是無法成功執行的…
參考資料:
INSTALL_FAILED_NO_MATCHING_ABIS when install apk
How To Download & Install ARM Translation v1.1.zip for Genymotion