DevEco Studio:模拟器常见问题
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
➤博客园地址:为敢技术(https://www.cnblogs.com/strengthen/ )
➤GitHub地址:https://github.com/strengthen
➤原文地址:https://www.cnblogs.com/strengthen/p/18470208
➤如果链接不是为敢技术的博客园地址,则可能是爬取作者的文章。
➤原文已修改更新!强烈建议点击原文地址阅读!支持作者!支持原创!
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
当模拟器运行出现错误时,您可以向我们提交错误信息。在扩展菜单栏打开Bug报告界面,在该界面您可以查看模拟器的上下文信息(包括本地操作系统信息,模拟器版本信息,镜像版本信息),界面左侧展示了Bug出现时的设备截屏。您可以输入Bug的再现步骤来帮助我们更快的解决此问题,同时选择Bug信息中是否包含日志(日志中可能包含代码堆栈)以及屏幕截图。点击Save按钮将Bug的相关信息保存至本地。点击Send按钮可自动跳转到HarmonyOS Developer网站在线提交错误。在提交错误信息时,请在附件里上传保存的Bug信息。
模拟器应用运行时崩溃退出
问题现象
在启动调试或运行过程中应用异常退出。
解决措施
- 模拟器与真机存在差异,请确保使用的是模拟器支持的场景规格能力。如果应用在模拟器中运行时发生崩溃,可能是当前代码中使用了模拟器不支持的能力导致。如果异常代码段实现的功能不是调试的目标功能,可以采取以下方式规避问题:
- 采用try-catch语句捕获异常代码段。
- 首先判断设备是否为模拟器(参见在应用中如何区分真机和模拟器)。针对模拟器的调试场景,使用if语句跳过异常代码段。
- 如果应用中使用到三方so库,需要有对应于模拟器的x86或ARM版本。
模拟器使用OpenGLES指令绘制图像,可能与真机存在色差
由于本地计算机所使用的OpenGL图形驱动与真机的图形驱动存在差异,部分图形接口的绘制效果无法与真机保持一致。同时,不同的显示设备也可能呈现出不同的显示效果,存在色差、饱和度的差异。
macOS上活动监视器中显示模拟器内存偏高
配置模拟器内存为4GB并使用一段时间,您可能会在活动监视器中发现模拟器进程占用了超过6GB的内存(如下图所示)。需要明确的是,图中的6.49GB并不代表模拟器进程实际使用的物理内存(即Dirty内存),而是指其占用的phys_footprint内存。在Mac系统中,针对虚拟化平台(如模拟器),普遍存在phys_footprint内存远高于Dirty内存的情况。
想要查看模拟器的Dirty内存,首先打开活动监视器,查看Emulator的进程号(PID)。然后通过 `footprint -vmObjectDirty 进程号` 命令可以查看Dirty内存大小。
Windows x86模拟器三方C/C++库使用限制
x86模拟器支持已x86化的C/C++三方库调试运行,未x86化的三方库开发者可以自行编译x86版本。
目前已经x86化的三方库如下:
三方库 |
备注 |
---|---|
自2.0.4-rc.4版本开始支持x86编译。 |
|
自2.1.1版本开始支持x86编译。已经是2.1.1版本请重新安装imageknife再进行编译。 |
|
自1.0.3版本开始支持x86编译。 |
|
自2.0.5版本开始支持x86编译。 |
|
自2.0.2版本开始支持x86编译。 |
|
自2.0.2-rc.0版本开始支持x86编译。 |
|
自2.0.0版本开始支持x86编译。 |
|
自2.0.1-rc.0版本开始支持x86编译。 |
|
自2.0.3-rc.0版本开始支持x86编译。 |
|
自2.0.5版本开始支持x86编译。 |
|
自2.0.1-rc.1版本开始支持x86编译。 |
|
自2.0.2-rc.0版本开始支持x86编译。 |
Windows x86模拟器安装HAP时失败
问题现象
在启动调试或运行C++应用/服务时,安装HAP出现错误,提示“error: install parse native so failed”错误信息。
解决措施
请参考安装HAP时提示“code:9568347 error: install parse native so failed”错误。
模拟器无法连接网络
问题现象
开发者打开了模拟器中的WLAN选项并已成功连接到VirtWifi,但是在模拟器中仍然无法访问网站。
解决措施
是否连接VirtWifi与模拟器能否访问互联网无关。VirtWifi仅用于在模拟器中判断WLAN的连接状态。模拟器访问网络实际上利用的是本地计算机的以太网或者WLAN,与本地计算机共享同一网络资源。如出现无法连接网络的情况,请开发者确认本地网络访问是否受到了限制(如使用公司内网)。如果对网络访问进行了限制,则需要在模拟器上配置网络代理。参见网络代理。
使用模拟器发起https请求时如何安装数字证书
问题现象
在使用网络代理发送https请求时,有时需要安装网站服务器的数字证书。
解决措施
模拟器上安装证书的过程分为两步:
1、将证书拖拽上传至模拟器中,“文件管理-我的手机-下载”目录下可查看上传的文件。
2、在本机命令行窗口中使用以下命令打开证书管理。
hdc shell aa start -a MainAbility -b com.ohos.certmanager
选择“从存储设备安装“,选择pem格式证书进行安装。
在模拟器中卸载应用显示成功,但实际未卸载成功
问题现象
通过桌面菜单卸载应用,显示卸载成功,但实际未卸载成功。
解决措施
出现该问题的原因是模拟器的磁盘空间已满,无法正常卸载应用。一般在频繁使用hdc file send local remote命令向模拟器中推送文件后可能会出现该问题。
请尝试通过如下两种方式解决:
- 方式一:及时删除模拟器中不再使用的文件。可以通过hdc shell [COMMAND]命令删除相关文件,更多关于hdc命令请参考hdc使用指导。
- 方式二:删除已创建的模拟器,然后重新创建模拟器。如果使用模拟器时,涉及推送比较占用磁盘空间的大文件或大应用,建议在创建模拟器时适当调大模拟器的内部存储空间(Storage ROM)。
运行工程到模拟器,提示“Failed to get the device apiVersion”
问题现象
模拟器已启动后,运行工程到模拟器,提示“Failed to get the device apiVersion”。
解决措施
可以通过如下方式重新运行工程:
- 在Local Emulator的设备列表窗口,点击“Wipe User Data”清除模拟器数据,然后启动模拟器并重新运行工程。
- 打开命令行工具,并进入DevEco Studio安装目录下的sdk\default\openharmony\toolchains路径下,执行 hdc kill -r 命令,然后启动模拟器并重新运行工程。
模拟器播放本地音频文件偶现卡顿
问题现象
部分场景下,模拟器播放音频文件可能出现卡顿情况:
场景一:模拟器启动后,立即播放音频;
场景二:长时间使用模拟器播放音频。
解决措施
在模拟器启动稳定后再进行音频场景测试,对于需要长时间验证音频播放的场景,建议使用真机设备。
模拟器时间与系统时间不一致
问题现象
模拟器长时间运行后,可能出现显示的时间与当前实际的系统时间不一致。
解决措施
在设置中打开自动设置时间,联网情况下时间会自动同步,也可以手动设置时间。重启模拟器后时间会同步。
模拟器启动后,设备无法识别
问题现象
场景一:调试运行过程中,安装HAP失败,提示“Device not founded or connected”。
场景二:DevEco Studio无法识别到已连接的设备,显示“No device”。
解决措施
在应用中如何区分真机和模拟器
问题现象
在调试应用代码时,有时需要要判断当前运行的设备是真机还是模拟器,如何进行区分?
解决措施
在应用中,您可以使用@ohos.deviceInfo模块的productModel属性来区分真机和模拟器。在模拟器上productModel的值为emulator。
设备管理点击新建模拟器无响应
问题现象
在设备管理界面点击New Emulator按钮没有反应,无法新建模拟器。
解决措施
- 打开本地计算机设置 > 应用 > 可选功能 > 添加可选功能。
- 搜索wmic,点击安装。
- 在Windows系统环境变量path中配置%SystemRoot%\System32\Wbem。
在Windows电脑上启动模拟器,提示未开启Hyper-V
问题现象
启动模拟器时,弹窗提示“未开启Hyper-V”或“Hyper-V not enabled”。
解决措施
- 首先打开控制面板 > 程序 > 程序与功能 > 启动或关闭Windows功能,找到并勾选“Hyper-V”、“Windows虚拟机监控程序平台”、“虚拟机平台”,点击确定并重启电脑。若勾选后启动模拟器仍然提示该错误,需要以管理员权限打开命令行窗口并执行:`bcdedit /set hypervisorlaunchtype auto`并重启电脑。
- 如果按照上述步骤无法解决,打开任务管理器->性能,若显示虚拟化已禁用或未开启,可能是BIOS中虚拟化没有开启,请根据计算机的主板型号,进入BIOS设置界面,并开启虚拟化功能。
更多关于Hyper-V安装请参考在 Windows 上安装 Hyper-V和Hyper-V 系统要求。
Windows x86模拟器卡在开机界面,无法进入桌面
查看本机CPU支持的指令集(如使用业界CPU-Z工具等)。模拟器需要电脑的CPU支持AES指令集,若电脑不支持则无法使用模拟器。
Windows X86模拟器启动后无法亮屏
问题现象
更新DevEco Studio后首次启动Windows X86模拟器,模拟器无法亮屏。
解决措施
建议清除模拟器中的用户数据后重新启动。关于如何清除用户数据,请参考启动和关闭模拟器。
模拟器使用物理键盘无法输入中文
问题现象
点击输入框后使用物理键盘无法输入中文。
解决措施
在X86或macOS(ARM)模拟器上点击输入框时会弹出软键盘,可以使用软键盘进行中文输入。
启动模拟器,提示镜像文件缺失
问题现象
启动模拟器失败,提示“system-image文件缺失”或“The system-image file is missing.”,模拟器镜像文件缺失。
解决措施
请通过以下两种方式解决:
- 单击菜单栏的Tools > Device Manager。在Local Emulator页签,单击右下角的New Emulator按钮。在虚拟设备配置界面,更新模拟器的镜像。
- 删除已创建的模拟器,然后重新创建模拟器。
启动模拟器,提示SDK路径已更改
问题现象
启动模拟器失败,提示“系统识别到的新的sdk路径...”或“Sdk Path has been changed to xxx”,SDK路径已修改。
解决措施
可以尝试通过如下两种方式进行解决:
- 在Local Emulator的设备列表窗口,点击“Wipe User Data”清除模拟器数据,然后重新启动模拟器。
- 重新创建一个模拟器,然后启动新建的模拟器。
模拟器中如何管理应用的权限
进入设置>应用和元服务,点击对应的应用,即可管理应用的权限。
在模拟器上运行应用,应用生成的文件在哪个目录下
问题现象
在模拟器上运行应用,应用的沙箱路径和真实的物理路径不一致,导致找不到应用文件。
解决措施
在模拟器中,应用的沙箱路径和真实物理路径存在对应关系,该对应关系和真机保持一致,具体可参见应用沙箱路径和真实物理路径的对应关系。
播放音频的过程中拔插耳机后,无法继续播放音频
问题现象
模拟器播放音频过程中,先拔掉USB接口的耳机,随后再将耳机插上,导致音频播放功能不可用。
解决措施
模拟器不支持耳机的热插拔,请不要在播放音频的过程中拔插耳机。如果插拔耳机后无法播放音频,请重启模拟器。也可以使用圆孔接口耳机来避免此问题。
模拟器上某些视频无法正常播放
问题现象
模拟器播放视频过程中,有时候会出现视频有声音无画面,或播放卡顿的现象。
解决措施
由于模拟器目前仅支持RGBA格式的像素显示,请确保视频解码格式正确。此外,由于模拟器只支持软件解码,如果视频解码器依赖硬件解码能力,也可能导致视频无法正常播放。
Windows X86模拟器使用过程中调整系统屏幕缩放比,模拟器显示异常
问题现象
打开模拟器,在Windows的设置选项中调整屏幕缩放比例,模拟器屏幕出现黑边,工具栏布局混乱。
解决措施
手动缩放模拟器即可恢复,缩放方式参见移动和缩放模拟器。
模拟器中应用卸载失败
问题现象
当模拟器存储空间不足时,无法卸载应用,提示卸载失败。
解决措施
- 打开DevEco Studio中的Device File Browser,尝试删除/storage/media/100/local/files/Docs/Download路径下不需要的文件以释放空间,再重新卸载应用。
- 如果上述步骤无法解决,请关闭模拟器,清除用户数据并重新启动。