为有牺牲多壮志,敢教日月换新天。

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信息。

模拟器应用运行时崩溃退出

问题现象

在启动调试或运行过程中应用异常退出。

解决措施

  1. 模拟器与真机存在差异,请确保使用的是模拟器支持的场景规格能力。如果应用在模拟器中运行时发生崩溃,可能是当前代码中使用了模拟器不支持的能力导致。如果异常代码段实现的功能不是调试的目标功能,可以采取以下方式规避问题:
    • 采用try-catch语句捕获异常代码段。
    • 首先判断设备是否为模拟器(参见在应用中如何区分真机和模拟器)。针对模拟器的调试场景,使用if语句跳过异常代码段。
  2. 如果应用中使用到三方so库,需要有对应于模拟器的x86或ARM版本。

模拟器使用OpenGLES指令绘制图像,可能与真机存在色差

由于本地计算机所使用的OpenGL图形驱动与真机的图形驱动存在差异,部分图形接口的绘制效果无法与真机保持一致。同时,不同的显示设备也可能呈现出不同的显示效果,存在色差、饱和度的差异。

macOS上活动监视器中显示模拟器内存偏高

配置模拟器内存为4GB并使用一段时间,您可能会在活动监视器中发现模拟器进程占用了超过6GB的内存(如下图所示)。需要明确的是,图中的6.49GB并不代表模拟器进程实际使用的物理内存(即Dirty内存),而是指其占用的phys_footprint内存。在Mac系统中,针对虚拟化平台(如模拟器),普遍存在phys_footprint内存远高于Dirty内存的情况。

想要查看模拟器的Dirty内存,首先打开活动监视器,查看Emulator的进程号(PID)。然后通过 `footprint -vmObjectDirty 进程号` 命令可以查看Dirty内存大小。

如何增加模拟器运行内存

问题现象

模拟器默认内存为4G,运行过程中内存不足时,可能会出现模拟器卡顿或者闪退。

解决措施

建议在创建模拟器时增加模拟器的运行内存(RAM)大小,请参考创建模拟器

Windows x86模拟器三方C/C++库使用限制

x86模拟器支持已x86化的C/C++三方库调试运行,未x86化的三方库开发者可以自行编译x86版本

目前已经x86化的三方库如下:

三方库

备注

@ohos/mmkv

自2.0.4-rc.4版本开始支持x86编译。

@ohos/imageknife

自2.1.1版本开始支持x86编译。已经是2.1.1版本请重新安装imageknife再进行编译。

@ohos/videocompressor

自1.0.3版本开始支持x86编译。

@ohos/coap

自2.0.5版本开始支持x86编译。

@ohos/unrar

自2.0.2版本开始支持x86编译。

@ohos/commons-compress

自2.0.2-rc.0版本开始支持x86编译。

@ohos/socketio

自2.0.0版本开始支持x86编译。

@ohos/smack

自2.0.1-rc.0版本开始支持x86编译。

@ohos/ijkplayer

自2.0.3-rc.0版本开始支持x86编译。

@ohos/mqtt

自2.0.5版本开始支持x86编译。

@ohos/mars

自2.0.1-rc.1版本开始支持x86编译。

@ohos/mp4parser

自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按钮没有反应,无法新建模拟器。

解决措施

  1. 打开本地计算机设置 > 应用 > 可选功能 > 添加可选功能。
  2. 搜索wmic,点击安装。

  3. 在Windows系统环境变量path中配置%SystemRoot%\System32\Wbem。

在Windows电脑上启动模拟器,提示未开启Hyper-V

问题现象

启动模拟器时,弹窗提示“未开启Hyper-V”或“Hyper-V not enabled”。

解决措施

  1. 首先打开控制面板 > 程序 > 程序与功能 > 启动或关闭Windows功能,找到并勾选“Hyper-V”、“Windows虚拟机监控程序平台”、“虚拟机平台”,点击确定并重启电脑。若勾选后启动模拟器仍然提示该错误,需要以管理员权限打开命令行窗口并执行:`bcdedit /set hypervisorlaunchtype auto`并重启电脑。

     

  2. 如果按照上述步骤无法解决,打开任务管理器->性能,若显示虚拟化已禁用或未开启,可能是BIOS中虚拟化没有开启,请根据计算机的主板型号,进入BIOS设置界面,并开启虚拟化功能。

更多关于Hyper-V安装请参考在 Windows 上安装 Hyper-VHyper-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路径下不需要的文件以释放空间,再重新卸载应用。
  • 如果上述步骤无法解决,请关闭模拟器,清除用户数据并重新启动

 

posted @ 2024-10-16 16:19  为敢技术  阅读(42)  评论(0编辑  收藏  举报