2017-03-07 205 views
24

現在將我的Android SDK工具更新至25.3.1後,仿真器將不再運行。SDK工具更新到25.3.1後,Android Studio上的仿真器無法啓動

我可以打開AVD管理器。當我打在名單上的模擬器的一個「玩」,我看到下面的欄上的Android工作室

enter image description here

但隨後進度條到達終點後,沒有任何反應。

我在release notes看到最新的更新帶來了模擬器的變化,所以我想知道如果這是一個錯誤,或者我錯過了有關的東西。

我正在使用Android Studio 2.3。

任何想法?

+1

我的解決方案並不是同時運行Vagrant(Virtualbox)。檢查[here](http://stackoverflow.com/q/16168799/3045181) – tokosh

+0

Android仿真器在25.3.1版本中移出了SDK工具包,因此下面的解決方案專門在SDK Manager中添加了Android仿真器包在Android Studio 2.3及更高版本中是正確的解決方案。 (https://developer.android.com/studio/releases/emulator.html) –

回答

21

升級後我遇到了同樣的問題。我無法弄清楚是什麼導致配置問題,但我確實找出了一種解決方法。

首先,我試圖通過命令行啓動模擬器:

$ emulator @<name_avd_image> 
emulator: ERROR: This AVD's configuration is missing a kernel file! Please ensure the file "kernel-ranchu" is in the same location as your system image. 
emulator: ERROR: ANDROID_SDK_ROOT is defined (<android>/sdk) but cannot find kernel file in <android>/sdk/system-images/ sub directories 

,如果你與-verbose標誌運行emulator你可以得到更多的信息。我嘗試重新安裝系統映像(例如Android API 25 x86 w/Google API),Android Emulator 25.3.1,並重新創建AVD,但沒有任何效果。

最後,作爲一個解決辦法,我只是複製一切從SDK系統映像目錄的系統文件到AVD目錄:

例:像素XL(Android的API 25 86 W /谷歌的API)
來源: <android>/SDK /系統圖像/ Android的25/google_apis/86/
目的地:〜/ .android/AVD/Pixel_XL_API_25.avd/

此後模擬器啓動權利了。這並不理想,但是這阻礙了我的開發,所以我必須重新啓動模擬器。我希望別人能夠弄清楚配置中發生了什麼。


UPDATE:找出配置問題!

我發現我定期所看到控制檯錯誤「你的模擬器是過時的,請通過推出過Android Studio更新:」所以我決定檢查:

$ which emulator 
<$ANDROID_SDK_ROOT>/tools/emulator 

的幫助從這個thread

The problem is there are two emulators: one in $ANDROID_SDK_ROOT/tools , another one in $ANDROID_SDK_ROOT/emulator . The one in $ANDROID_SDK_ROOT/tools cannot start. Place $ANDROID_SDK_ROOT/emulator before $ANDROID_SDK_ROOT/tools in your $PATH variable, it should fix the problem.

注意:對於大多數Mac用戶,您可以編輯您的~/.bash_profile以更改這些設置,然後運行$source ~/.bash_profile加載更新。在我的特殊情況下,我還需要清除$ ANDROID_HOME的舊值。

+1

你幫了我很多。謝謝!修復:更多的信息,你添加'-verbose'而不是'--verbose' –

+0

我的模擬器現在打開,但留在黑色的「android」屏幕 – Gilian

+0

編輯:我修復我的問題修復我的路徑(變量) \ Users \ \ AppData \ Local \ Android \ sdk「 – Gilian

1

轉到Sdk/emulator/lib64/libstdc++移動libstdc++.so.6libstdc++.so.6.0.18到MyFolder中(I創建此)(或任何其他位置)作爲備份並複製libstdc++.so.6libstdc++.so.6.0.21usr/lib64;再次嘗試啓動您的虛擬設備。

+0

我在lib64文件夾中沒有'libstdC++'。 – shinzou

3

解決的辦法是: 工具 - Android的 - SDK經理 標籤SDK工具 安裝模擬器25.3.1

+0

我在那裏看到26.0.0,我該怎麼回去? – shinzou

6

libstdc++.so.6是原因(如通過@doruMarinau指出的); Android Studio 2.3將該文件移至新文件夾your_sdk/emulator/lib64

如果使用Linux,創建符號鏈接它:

$ ln -sf /usr/lib/libstdc++.so.6 /your_sdk/emulator/lib64/libstdc++/libstdc++.so.6 
+0

謝謝!對於記錄,如果在嘗試從命令行運行模擬器時遇到libGL錯誤(如libGL錯誤:無法加載驅動程序),則會修復它:i965_dri.so – comodoro

20

真正的問題,至少在Ubuntu的16.10和17.04和Andoid工作室2.4預覽7(但可以與任何Debian的衍生物和以前的版本發生Android Studio)是否Google正在使用模擬器工具分發非工作的libstdC++庫。他們分發6.0.18版本,但我發現工作的是6.0.22。

編輯:有報告說,6.0.21版本的libstdC++的作品以及6.0.22。

所以,你有兩個選擇:

選項1

rm先前的非工作谷歌的庫中/yoursdkpàth/仿真器/ lib64目錄/的libstdC++

下載和提取libstdc++ official package庫in /yoursdkpàth/ emulator/lib64/libstdC++

不要嘗試安裝.deb,解壓文件s /二進制文件(2個二進制文件位於名爲「lib」的文件夾中),然後手動將它們複製到推薦的路徑中。

選項2

創建simlink與Ubuntu的,這已經是分佈式的lib 6.0.22版本

cd ~/Android/Sdk/emulator/lib64/libstdc++/ 

mv libstdc++.so.6 libstdc++.so.6.bak 

mv libstdc++.so.6.0.18 libstdc++.so.6.0.18.bak 

ln -sf /usr/lib/x86_64-linux-gnu/libstdc++.so.6 ~/Android/Sdk/emulator/lib64/libstdc++/libstdc++.so.6 

ln -sf /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.22 ~/Android/Sdk/emulator/lib64/libstdc++/libstdc++.so.6.0.22 

1重要提示:由於谷歌似乎沒有意識到這個問題的,他們在Android Studio中對Android模擬器包進行的每次更新中,都會破壞替換正在使用的SDK C++庫的破壞/舊版本的funcionality。解決辦法是重複上述任何一個程序。

重要2:這隻有在您的AVD配置爲使用PC GPU作爲視頻加速主機(硬件GLES 2.0)時纔有效。在您的AVD上選擇Sofware GLES 2.0將無需任何建議的更改,但您的模擬器將變得非常緩慢。

+0

我已應用*選項2 *。之後,模擬器打開1秒鐘,然後自動關閉! –

+0

@HasanAbdullah檢查你的Android Studio日誌。這似乎是另一種與硬件加速無關的問題。順便說一下,自從26.x.x模擬器解決了這篇文章的問題,以防你想嘗試Android Studio 3預覽版。 –

+1

這適用於BBQLinux,這是一個拱形發行版。唯一的區別是直接在'/ usr/lib'中的庫的位置而不是'/ usr/lib/x86_64-linux-gnu' – Chisko

8

您是否檢查了安裝在** SDK工具中的Android模擬器?

轉至設置 - > sdk-tools

查看Android是否安裝。

我面臨同樣的問題。當我檢查SDK工具時,我發現Android模擬器沒有安裝。

enter image description here

+0

這幫助我在搜索了幾個小時解決方案後解決了問題。感謝您分享這個小細節。 – acido

0

它是推動我堅果的最後幾天。以下是對我有用的東西:

ANDROID_HOME, ANDROID_SDK_ROOT「系統環境變量」中的變量與Android Studio -> Settings -> Android SDK Location不同。所以當我改變環境變量時,AVD就開始了!

(更改環境變量,你應該重新啓動Android的工作室之後)

1

這是一個錯誤libGL函數和libstdC++的問題。無法在模擬器中啓動AVD。 這是一個知道的bug,你可以通過一些簡單的步驟輕鬆擊敗它。

我已經測試上的Ubuntu 16.10 64位

解決此解決方案:

$adb kill-server 
$adb start-server 

在此之後從Android工作室開始您的模擬器。如果這不起作用,那麼繼續下一個解決方案。

替代解決方案:

首先,安裝一些軟件包和庫:

$sudo apt-get install lib64stdc++6:i386 
$sudo apt-get install mesa-utils 

其次,調整一些鏈接:

$ cd YOURPATH/Android/Sdk/tools/lib64 
$ mv libstdc++/ libstdc++.bak 
$ ln -s /usr/lib64/libstdc++.so.6 libstdc++ 

三,重新啓動您的AVD設備進行測試。

2

這爲我工作:

轉到AVD管理器,然後在操作列,單擊指向黎明的箭頭並選擇「清空數據」。 之後,嘗試運行模擬器。

enter image description here

0

這工作對我來說唯一的解決辦法,是安裝下列缺少的庫:

$sudo apt-get install lib64stdc++6:i386 
$sudo apt-get install mesa-utils 

一旦你有他們,在SDK與這些模擬器有更新一個如下:

$ ln -sf /usr/lib/libstdc++.so.6 /home/[YOUR_SYSTEM_USERNAME]/emulator/lib64/libstdc++/libstdc++.so.6 

再次啓動您的模擬器,它會工作得很好。

0

從本版本開始,Android Emulator將與SDK Tools分開發布。 所以只是安裝Android模擬器使用sdk工具在你的android工作室

0

我的問題是ANDROID_SDK_HOME指向d:\.android而不是d:\。無法找到圖像。