編輯:Android編程入門
android開發中關於模擬器emulation的常見問題
無法啟動android模擬器,提示 XDM authorization key matches an existing client! SDL init failure, reason is: No available video device
打開電腦的 Terminal 終端, 以當前圖形界面用戶的身份執行命令 xhost localhost 即可,如果想實現登錄後自動執行這個命令,可以做以下操作 點開 Applicantions Menu -> Settings -> Session and Startup 在打開的選項中點擊 Application Autostart 然後點擊左下方的 Add 按鈕, 設置Name的值為:xhost localhost 設置Description的值為:xhost localhost 設置Command的值為:xhost localhost 點擊OK,點擊Close,即可
無法啟動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
使用 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的權限
無法啟動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
根據提示在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,成功啟動模擬器
android模擬器中DNS解析正常但無法ping通外網
這是正常現象,因為模擬器與PC之間的網絡通信是通過TCP端口轉發來實現的 而ping是ICMP數據包,沒有端口,故模擬器無法將ping請求送出 但是是可以正常浏覽網頁的 所以不能用ping來測試模擬器是否能夠聯網,而是用網頁浏覽器來測試
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?
方法一:adb root adb shell rm /mnt/secure/asec/smdl* 方法二:將項目源文件 AndroidManifest.xml 中的 android:installLocation="preferExternal" 修改成 android:installLocation="auto" 即可
Android Fragment的生命周期和Activity類似,實際可能會涉及到數據傳遞,onSaveInstanceState
Android 開發環境搭建首先,你可以在以下的操作系統開始 Android 應用程序開發:Microsoft Windows XP 或更高版本。帶有英特
讓我們來簡單了解下Android Studio中不同目錄(文件)的位置和用途。首先看下一個App的最簡單的目錄結構 OK,我們這麼看,第一,把這麼多
activity_data1.xml<?xml version=1.0 encoding=utf-8?><LinearLayout xmlns:andr