emulator: ERROR:This AVD's configuration is missing a kernel file!&HAX is not installed on this mach
啟動模擬器需要兩個步驟:
1.建立AVD(Android Virtual Device)
2.啟動emulator
一般使用Eclipse開發時,開啟一個模擬器就是這麼一個過程,其實命令列模式下也是這樣。剛開始不知道如何命令列啟動模擬器的時候就輸入了一個emulator,報錯了,出現如下提示:
[html] view plaincopy
- emulator: ERROR: You did not provide the name of an Android Virtual Device
- with the '-avd <name>' option. Read -help-avd for more information.
- If you *really* want to *NOT* run an AVD, consider using '-data <file>'
- to specify a data partition image file (I hope you know what you're doing).
1.建立AVD
根據提示資訊說明,需要先有一個AVD,即一個android的虛擬裝置,在命令列輸入android create avd,當然前提是在linux中配置好了環境變數,否則會出現找不到命令的錯誤提示的。如果環境變數配置正確會出現了錯誤提示資訊:
[html] view plaincopy
- Error: The parameters --name, --target must be defined for action 'create avd'
- Usage:
- android [global options] create avd [action options]
- Global options:
- -s --silent Silent mode: only errors are printed out.
- -h --help Help on a specific command.
- -v --verbose Verbose mode: errors, warnings and informational messages are printed.
- Action "create avd":
- Creates a new Android Virtual Device.
- Options:
- -c --sdcard Path to a shared SD card image, or size of a new sdcard for the new AVD
- -s --skin Skin for the new AVD
- -a --snapshot Place a snapshots file in the AVD, to enable persistence.
- -n --name Name of the new AVD [required]
- -p --path Directory where the new AVD will be created
- -t --target Target ID of the new AVD [required]
- -f --force Forces creation (overwrites an existing AVD)
根據上述所提到的引數,並通過查資料得到了-t --target引數如何獲得。在命令列下輸入android list target,顯示如下:
[html] view plaincopy
- android list target
- Available Android targets:
- id: 1 or "android-8"
- Name: Android 2.2
- Type: Platform
- API level: 8
- Revision: 2
- Skins: WQVGA432, WQVGA400, HVGA, WVGA854, QVGA, WVGA800 (default)
其中的id:這一行就是我們需要的target的引數
如果啟動的模擬器還需要sdcard的話,還需要首先建立一個sdcard的映象
[html] view plaincopy
- mksdcard -l sdcard 512M ~/xx/sdcard.img
這樣就很容易寫出建立AVD的命令了
[html] view plaincopy
- android create avd -c ~/xxx/sdcard.img -n emulator2011 -p ~/test/ -t 1 -f
2.啟動模擬器
首先通過android list avd 檢視建好的虛擬裝置
[html] view plaincopy
- Available Android Virtual Devices:
- Name: android.2.2
- Path: /home/XXX/.android/avd/android.2.2.avd
- Target: Android 2.2 (API level 8)
- Skin: HVGA
- ---------
- Name: emulator2011
- Path: /home/XXX/test
- Target: Android 2.2 (API level 8)
- Skin: WVGA800
- Sdcard: /home/XXX/sdcard.img
然後通過命令
[html] view plaincopy
- emulator @emulator 2011
就啟動了第二個型別的模擬器。
其實用命令列啟動模擬器和eclipse裡啟動是相同的。上面兩個步驟就是對應eclipse中建立avd和啟動模擬器的過程,使用eclipse建立avd,它會在家目錄下建立.android的隱藏資料夾,將avd的資訊全都放到這裡面。
android create avd -c ~/Desktop/android/sdcard.img -n emulator2015 -p ~/Desktop/android/test/ -t 4 -f
emulator @emulator2015
emulator: ERROR: x86 emulation currently requires hardware acceleration!
Please ensure Intel HAXM is properly installed and usable.
CPU acceleration status: HAX is not installed on this machine (/dev/HAX is missing).
前提: CPU 支援 VT (Virtualization Technology), 而且僅限於 Intel CPU
首先要開啟SDK Manager 下載intel haxm,下載位置:
android-sdk\extras\intel\Hardware_Accelerated_Execution_Manager\IntelHaxm.exe
下載完畢後執行IntelHaxm.exe安裝,完畢後命令行執行 sc query intelhaxm ,如果 STATE RUNNING 表示安裝成功。
開啟 SDK Manager 下載 intel x86映象
建立AVD,CPU選擇 intel atom x86
出現emulator: ERROR:This AVD's configuration is missing a kernel file!!的原因是在你的sdk下缺少相應的kernel-qemu檔案。 可按如下步驟查詢原因: 執行android list avd ,檢視你建立的AVD 其中ABI:後面的關鍵字記住,然後進入你的SDK中..\..\sdk\system-images\android-17,我建立的AVD是API level 17,所以檢視的檔案是android-17,看這個資料夾中是否有X86的檔案 我之前就是因為缺少X86的檔案,所以一直報錯。 解決方法: 進入Android SDK Manager,檢視相應AVD的Packages 缺少X86資料夾就下載Intel x86 Atom System Image 缺少armeabi-v7a資料夾就下載ARM EABI v7a System Image 下載完成就OK 了! 然後再使用命令emulator @(avd名字) - verbose檢視 其中有一行顯示如下, 報錯就是因為它找不到x86下面的kernel-qemu檔案!!!