一、下載apk
選擇你需要安裝的apk進行下載,下載完以后放在與adb.exe同一目錄下;
看我的

二、安裝apk遇到的問題
開啟Genymotion模擬器,然后cmd到你的platform-tools目錄下,
使用以下命令進行安裝。
adb install wxwork.apk
- 1
問題一:apk安裝不成功
錯誤提示Installation failed with message INSTALL_FAILED_CPU_ABI_INCOMPATIBLE
或者直接把.apk包拖進Genymotion模擬器中,也是出現同樣的錯誤
分析:這個問題我也糾結了很久,網上找了一下,原來是Android用Genymotion 調試的時候,如果有.so的庫的話,出現Failure [INSTALL_FAILED_NO_MATCHING_ABIS] 錯誤,並且始終安裝不上。
這是因為系統里缺少了 Google Play 市場等各種谷歌服務應用,其實是因為版權問題,從 2.0 版本開始 Genymotion 提供的虛擬設備都已經移除了 Google Apps 以及 ARM library support ,所以如果通過軟件里下載回來的虛擬機,在運行一些必須依靠這些組件運行的 App 時就會出現錯誤或閃退現象。是因為模擬器是在x86的處理器上運行,而手機一般都是RAM架構的,所以得把模擬器刷成ARM的才行。
例如像地圖或者瀏覽器什么的,里面會包含一些so動態庫文件,這些都是在arm環境下運行的。而genymotion現在的發布版本沒有帶有Genymotion-ARM-Translation.zip,需要手動添加!
解決方法一:
1、下載 Genymotion-ARM-Translation_v1.1.zip;可以到官網下載 ,如果嫌速度太慢也得可以到百度雲;
2、.運行Genymotion,並start你配置好的virtual device

3、將下載好的Genymotion-ARM-Translation_v1.1.zip 拖拽到Genymotion模擬器里面

Genymotion-ARM-Translation_v1.1.zip 拖拽到Genymotion模擬器里面沒有出現安裝的情況
4、如果把Genymotion-ARM-Translation這個拖進去,沒有出現安裝,而是出現下圖這種情況,文件被復制到了 Sdcard/loadcard下面的話

如果無法將zip包拖入Genymotion中,可下載[genymotion-no-java.zip],解壓該文件,然后將Genymotion-Setting-ADB里面的SDK目錄指向解壓文件里面的android-sdk-tools目錄,這樣zip包就可以拖入運行中的模擬器(即放入模擬器的sdcard/Download文件夾)。

5、然后繼續上述拖拽步驟3,出現如下提示,然后點擊ok。


6、安裝完后,重啟你的virtual device以及Genymotion。
解決方法二
1、打開模擬器:
我們找到設置,然后打開它,先設置一些屬性

2、定位到安全:
我們找到安全選擇,然后點擊它,設置安全屬性。

3、定位到未知來源:
我們在這里允許安裝來自未知來源的應用。我們在這里打勾。

4、最關鍵的來了:
我們下載一個Genymotion-ARM-Translation.zip的文件,把它拉進模擬器里。

5、等待安裝:
這里是一個安裝過程,等安裝完成就彈出一個對話框,我們點擊OK。

問題2:adb啟動失敗
當你重啟genymotion進行安裝apk時,提示端口號被占用,mmp,怎么盡是問題呢?內心真實一萬個xxx在奔騰。
Unable to create Debug Bridge: Unable to start adb server: error: could not install *smartsocket* listener: cannot bind to 127.0.0.1:5037: 端口只能使用一次 (10048) could not read ok from ADB Server * failed to start daemon * error: cannot connect to daemon
- 1
- 2
- 3
- 4
好吧,既然問題來了,我們就要迎難而上干掉它。
方法一:查看端口被占用的進程,殺掉它
1、打開cmd窗口,進入adb.exe所在的文件夾目錄
如 cd C:\android\android-sdk\platform-tools
- 1
2、 netstat -aon|findstr “5037”

需要注意的是 有時候會查詢到很多的進程(我一般選第一個,不行的話全部試一次,暫時沒有准確的方法,后續更新!!)
根據上圖然后輸入 taskkill /pid 9892 /f (9892就是占用此端口的進程id)
方法二:更改adb.exe的端口號
如果殺掉占用端口的進程,還是不能正常啟動怎么辦呢?
在環境變量里面添加一個變量,ANDROID_ADB_SERVER_PORT,我這里更改成5038,你隨意。

方法三:
用方法一里面的方法查找占用5037端口號的進程運行(win+R)—>輸入”cmd” 打開命令行窗口輸入:netstat -aon|findstr “5037”,我發現這個進程就是個adb.exe進程,但是這個進程不是我們sdk里面的進程
1、我打開這個進程的位置,如圖:

2、發現這個adb.exe的進程是我安裝Genymotion里面(D:\Program Files\Genymobile\Genymotion\tools
adb.exe)的adb,就是這個進程搶占了5037的端口。問題找到了,於是乎我就把這個adb給刪除掉。刪除之后我發現模擬器都start不了了,那么問題來了,如圖:

3、然后我看到了提示!提示里面說在我安裝的Genymotion里面找不到adb工具,問我是不是指定路徑為SDK的路徑,我就順着它的提示,點擊“YES”,就進入設置路徑的界面了,選擇ADB選項卡,第一個就是使用默認Genymotion里面的adb(之前我刪除的那個adb),選第二個,第二個就是使用SDK里面的adb.exe,這好辦,我把我SDK的路徑那個給他就好了,如圖:

4、配置好之后重啟你的AndroidStudio和Genymotio就ok了
三、安裝apk
查看模擬器是否與電腦成功連接
1、 cmd到你的platform-tools目錄下,使用以下命令
adb devices
- 1

看到我畫出來的就是我的模擬器,證明已經成功連接了。
2、接下來執行命令
adb install wxwork.apk
- 1
顯示安裝成功;

