Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android編程入門 >> android開發中關於模擬器emulation的常見問題

android開發中關於模擬器emulation的常見問題

編輯:Android編程入門

android開發中關於模擬器emulation的常見問題

Trouble:

	無法啟動android模擬器,提示

	XDM authorization key matches an existing client!
	SDL init failure, reason is: No available video device

Oneway:

	打開電腦的 Terminal 終端,
	以當前圖形界面用戶的身份執行命令
	
	xhost localhost
	
	即可,如果想實現登錄後自動執行這個命令,可以做以下操作
	點開 Applicantions Menu -> Settings -> Session and Startup
	在打開的選項中點擊 Application Autostart
	然後點擊左下方的 Add 按鈕,
	設置Name的值為:xhost localhost
	設置Description的值為:xhost localhost
	設置Command的值為:xhost localhost
	點擊OK,點擊Close,即可

Trouble:

	無法啟動android模擬器,提示

	emulator: ERROR: x86 emulation currently requires hardware acceleration!
	Please ensure KVM is properly installed and usable.
	CPU acceleration status: This user doesn't have permissions to use KVM (/dev/kvm).
	
	或者提示
	emulator: ERROR: x86 emulation currently requires hardware acceleration!
	Please ensure KVM is properly installed and usable.
	CPU acceleration status: Could not open /dev/kvm :Permission denied

Oneway:

	使用 root 權限執行以下三條命令後注銷當前用戶或者直接重啟電腦即可
	(本例子中當前登錄圖形界面的用戶是 sman)
	
	groupadd kvm
	usermod -G kvm -a sman
	echo 'KERNEL=="kvm",GROUP="kvm",MODE="0660"' >> /etc/udev/rules.d/androidUseKVM.rules 
	
	這三條命令的作用分別是:
	#創建用戶組kvm
	#將用戶sman添加到kvm用戶組
	#開機時自動賦予用戶組kvm擁有0660的權限

Trouble:

	無法啟動android模擬器,提示
	
	Android/Sdk/tools/emulator -netdelay none -netspeed full -avd Nexus_5_API_23
	
	libGL error: failed to load driver: i965
	libGL error: Try again with LIBGL_DEBUG=verbose for more details.

	failed to create drawable
	getGLES1ExtensionString: Could not create GLES 1.x Pbuffer!
	Failed to obtain GLES 1.x extensions string!
	Could not initialize emulated framebuffer

Oneway:

	根據提示在Terminal中申明環境變量並在Terminal中啟動模擬器

	export LIBGL_DEBUG=verbose; Android/Sdk/tools/emulator -netdelay none -netspeed full -avd Nexus_5_API_23

	得到提示:

	libGL: OpenDriver: trying /usr/lib64/xorg/modules/dri/i965_dri.so
	libGL error: failed to open drm device: Permission denied
	libGL error: failed to load driver: i965
	libGL: OpenDriver: trying /usr/lib64/xorg/modules/dri/swrast_dri.so
	libGL: OpenDriver: trying /usr/lib64/xorg/modules/dri/i965_dri.so
	libGL error: failed to open drm device: Permission denied
	libGL error: failed to load driver: i965
	libGL: OpenDriver: trying /usr/lib64/xorg/modules/dri/swrast_dri.so
	failed to create drawable
	getGLES1ExtensionString: Could not create GLES 1.x Pbuffer!
	Failed to obtain GLES 1.x extensions string!
	Could not initialize emulated framebufferSegmentation fault


	先解決第一個錯誤,第一個錯誤是沒有權限使用drm設備
	於是使用groups命令檢查當前用戶是否存在於video用戶組
	[sman@mnxnm:~]$ groups
	users plugdev vboxusers kvm
	可以看到sman不屬於video用戶組

	於是使用root權限將當前用戶sman添加到video用戶組
	root@mnxnm:~# usermod -G video -a sman

	注銷當前用戶再重新登錄(必須重新登錄,否則用戶組改動不會生效)
	登錄後確認sman是否成功加入video用戶組
	[sman@mnxnm:~]$ groups
	users video plugdev vboxusers kvm
	可以看到sman成功加入video用戶組

	再啟動Android studio,再通過Android Virtual Device Manager啟動模擬器
	看看錯誤有沒有消除
	如果提示NAND: could not write file /tmp/android-sman/emulator-7UY28S, File exists
	則 rm /tmp/android-sman/emulator-* 後再試

	OK,成功啟動模擬器

Trouble:

	android模擬器中DNS解析正常但無法ping通外網

Oneway:

	這是正常現象,因為模擬器與PC之間的網絡通信是通過TCP端口轉發來實現的
	而ping是ICMP數據包,沒有端口,故模擬器無法將ping請求送出
	但是是可以正常浏覽網頁的
	
	所以不能用ping來測試模擬器是否能夠聯網,而是用網頁浏覽器來測試

Trouble:

	android模擬器中安裝調試apk時出錯,提示
	
	Application Installation Failed
	Installation failed with message INSTALL_FAILED_CONTAINER_ERROR.
	It is possible that this issue is resolved by uninstalling an existing version of the apk if it is present, and then re-installing.

	WARNING: Uninstalling will remove the application data!

	Do you want to uninstall the existing application?

Oneway:

	方法一:adb root
		adb shell rm /mnt/secure/asec/smdl*

	方法二:將項目源文件 AndroidManifest.xml 中的
		android:installLocation="preferExternal"
		修改成
		android:installLocation="auto"
		即可
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved