关于DevEco Studio热加载的问题

关于DevEco Studio热加载的问题 不知道为什么项目热加载一直卡在这里 删除缓存重装都没用

图片


9 回复

开发者您好,麻烦您提供一下DevEco Studio侧的日志和Hilog日志以及问题复现时间:

1. Hilog日志获取,获取方式如下:

一、 清空设备端的日志。

# 清除历史HiLog日志记录,对应目录
hdc shell hilog -r

二、开始记录日志。

# 获取设备日志并保存到XX目录中
# 实时打印日志并存放到某个目录下,需要在D盘根目录下新建一个HiLog文件夹
hdc shell hilog > D:/HiLog/HiLog.log

三、操作设备,复现问题。

四、获取设备端日志。

# 按Ctrl+C键,停止HiLog日志实时记录,并进行HiLog日志的保存。

# 导出faultlogs of crash history日志,需要在D盘根目录下新建一个HiLog文件夹
hdc shell hidumper -e > D:/HiLog/crash.log

2. IDEA侧日志获取方式:Help—Show Log in Explorer会跳转对应idea.log,日志所在的文件夹整体打包。

3.问题复现时间


你好 相关日志一直在楼三上传了 感谢帮助,

最终的解决办法是 回退版本 然后把自己的业务代码重新复制 至于经历了什么为什么会出现热加载卡死我也不知道。。。。,

com.alibaba.fastjson2.JSONException: illegal input, offset 55, character <, line 1, column 55, fastjson-version 2.0.54 { “app”: { “bundleName”: “com.shuishenhuole.blog”,<<<<<<< HEAD “patchVersionCode”: 2002608,======= “patchVersionCode”: 2002574,>>>>>>> 82e7da4c3c2cee0b62c8cdff39da23624f019c9a “versionCode”: 1000000 }, “module”: { “name”: “default”, “type”: “hotreload” }}

at com.alibaba.fastjson2.JSONReader.readFieldNameUnquote(JSONReader.java:665)

at com.alibaba.fastjson2.JSONReader.readObject(JSONReader.java:2386)

at com.alibaba.fastjson2.JSONReader.read(JSONReader.java:2207)

at com.alibaba.fastjson2.JSON.parseObject(JSON.java:348)

at com.alibaba.fastjson2.JSONObject.parseObject(JSONObject.java:2021)

at com.huawei.deveco.debugger.ohos.util.ProjectUtil.changePatchVersionCode(ProjectUtil.java:643)

at com.huawei.deveco.debugger.ohos.increment.executor.taskflow.InitTaskFlow.execute(InitTaskFlow.java:43)

at com.huawei.deveco.debugger.ohos.increment.executor.HotReloadExecutor.execute(HotReloadExecutor.java:132)

at com.huawei.deveco.debugger.ohos.increment.executor.HotReloadExecutor.lambda$startHotReload$0(HotReloadExecutor.java:117)

at com.intellij.openapi.application.impl.AnyThreadWriteThreadingSupport$executeOnPooledThread$1.run(AnyThreadWriteThreadingSupport.kt:167)

at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)

at com.intellij.util.concurrency.ContextCallable.lambda$call$1(ContextCallable.java:85)

at com.intellij.util.concurrency.ContextCallable.call(ContextCallable.java:94)

at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)

at com.intellij.util.concurrency.ChildContext$runInChildContext$1.invoke(propagation.kt:103)

at com.intellij.util.concurrency.ChildContext$runInChildContext$1.invoke(propagation.kt:103)

at com.intellij.util.concurrency.ChildContext.runInChildContext(propagation.kt:109)

at com.intellij.util.concurrency.ChildContext.runInChildContext(propagation.kt:103)

at com.intellij.util.concurrency.ContextRunnable.run(ContextRunnable.java:27)

at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)

at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)

at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:735)

at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:732)

at java.base/java.security.AccessController.doPrivileged(AccessController.java:400)

at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1.run(Executors.java:732)

at java.base/java.lang.Thread.run(Thread.java:1583)

好像还有另外一段日志

相关日志

DevEco Studio提供Hot Reload(热重载)能力,支持开发者在真机或模拟器上运行/调试应用时,修改代码并保存后无需重启应用,在真机或模拟器上即可使用最新的代码,帮助开发者更快速地进行调试。

针对大多数代码修改场景,热重载均能提供支持,但是一些特殊场景需要通过热重载+重启应用后方可生效,因此,DevEco Studio提供基于热重载的增强能力——热重启**(从DevEco Studio 5.1.1 Beta1版本开始支持)。**开启开关后,DevEco Studio在遇到热重载不支持的场景时,将自动切换至热重启以获取更强的支持能力。

Hot Reload支持Stage模型的ArkTS工程,不支持ArkTS卡片相关工程,不建议在hotReload模式下执行与ArkTS卡片的相关操作。

使用约束

热重载/热重启的修改文件支持范围

修改文件 热重载 热重启 说明
修改Entry入口模块内ets、ts代码文件 支持 支持 -
修改Entry直接或间接依赖的Har模块内代码文件 支持 支持 Har模块与Entry模块间无Hsp
修改Entry直接或间接依赖的Hsp模块内代码文件 不支持 不支持 -
引入的其他工程Har模块内代码文件 支持 支持 Har模块与Entry模块间无Hsp
引入的其他工程Hsp模块内代码文件 不支持 不支持 -
修改worker线程文件 不支持 不支持 -
修改模块目录下Index文件 支持 支持 -
启动应用后新增的代码文件 不支持 不支持 -
C++、so文件 不支持 不支持 -
resource资源文件(如修改string.json文件的内容) 不支持 不支持 支持对资源引用的修改,例如把$r(‘app.color.greenColor’)改成$r(‘app.color.redColor’)

我是版本是6 然后我也按照你下面的文档做了 你那个是官方文档有的吧?还是卡在这个 等半天…,

DevEco Studio的热加载功能基于ArkTS/ArkUI框架实现,通过动态替换修改的代码模块实现实时预览。在预览器运行状态下,修改UI组件属性或业务逻辑后,IDE会自动增量编译并同步到设备。需确保项目已启用HotReload功能,且修改范围在支持的语法规范内。若热加载失效,可检查模块依赖是否完整或重启预览器。该功能仅适用于JS/TS语言开发的鸿蒙应用。

热加载卡顿通常与项目配置或依赖项有关。建议检查以下方面:

  1. 确认开发环境配置:确保DevEco Studio和SDK为最新版本,项目编译环境与设备系统版本匹配。
  2. 检查依赖项:在build-profile.json5中排查是否有循环依赖或版本冲突,尝试暂时移除非必要依赖进行测试。
  3. 调整热加载模式:在DevEco Studio设置中尝试切换File > Settings > Build, Execution, Deployment > Hot Load的触发条件(如改为手动触发)。
  4. 清理缓存:执行Build > Clean Project后重启IDE,避免直接删除缓存文件导致配置错乱。

若问题持续,可尝试新建空白页面测试基础热加载功能,以排除页面代码层面的异常。

回到顶部