鸿蒙HarmonyOS开发中分布式流转开发常见报错FAQ

开发 分布式 OpenHarmony
HarmonyOS开发中分布式协同是非常重要的一个功能,大家在刚接触的时候可能会出现各种各样的错误。我在此总结下在进行分布式流转开发过程中常见的一些坑和解决办法,希望可以帮助到各位。

[[385509]]

想了解更多内容,请访问:

51CTO和华为官方合作共建的鸿蒙技术社区

https://harmonyos.51cto.com

HarmonyOS开发中分布式协同是非常重要的一个功能,大家在刚接触的时候可能会出现各种各样的错误。我在此总结下在进行分布式流转开发过程中常见的一些坑和解决办法,希望可以帮助到各位。

1、查找不到设备列表的报错,如下图

解决措施如下:

(1)检查wifi是否在同一网络

(2)华为账号是否登录,设备是否都是登录的相同的华为账号

(3)手机设置中“分布式协同”是否开启。

2、This ability do not support continuation.

该错误的原因是因为只在Slice中实现了IAbilityContinuation接口,而没有在Slice对应的ability中也实现该接口,解决方案就是在ability中实现IAbilityContinuation接口

  1. package com.xdw.demo; 
  2.  
  3. import com.xdw.demo.slice.MigrationAbilitySlice; 
  4. import ohos.aafwk.ability.Ability; 
  5. import ohos.aafwk.ability.IAbilityContinuation; 
  6. import ohos.aafwk.content.Intent; 
  7. import ohos.aafwk.content.IntentParams; 
  8.  
  9. public class MigrationAbility extends Ability implements IAbilityContinuation { 
  10.     @Override 
  11.     public void onStart(Intent intent) { 
  12.         super.onStart(intent); 
  13.         super.setMainRoute(MigrationAbilitySlice.class.getName()); 
  14.  
  15.     } 
  16.  
  17.     @Override 
  18.     public boolean onStartContinuation() { 
  19.         return true
  20.     } 
  21.  
  22.     @Override 
  23.     public boolean onSaveData(IntentParams intentParams) { 
  24.         return true
  25.     } 
  26.  
  27.     @Override 
  28.     public boolean onRestoreData(IntentParams intentParams) { 
  29.         return true
  30.     } 
  31.  
  32.     @Override 
  33.     public void onCompleteContinuation(int i) { 
  34.  
  35.     } 
  36.  
  37.     @Override 
  38.     public void onRemoteTerminated() { 
  39.  
  40.     } 

3、handleStartContinuation: Ability rejected. 流转被拒绝

产生该错误的线上是不会产生crash,也不会生成error日志,而是打印的info日志。表现就是并没有进行流转。

产生的原因是实现IAbilityContinuation接口中的onStartContinuation方法返回的是false,修改办法就是将返回值修改为true。

4、handleStartContinuation: ScheduleSaveData failed

产生该错误的线上是不会产生crash,也不会生成error日志,而是打印的warn日志。表现也是并没有进行流转。

产生的原因是实现IAbilityContinuation接口中的onSaveData方法返回的是false,修改办法就是将返回值修改为true。

5、能正常流转启动FA,但是没有传递过去数据

这里能正常流转,也不会有相关报错日志打印,只是业务逻辑错误。能正常流转,但是没有数据传递,产生的原因是实现IAbilityContinuation接口中的onRestoreData方法返回的是false,修改办法就是将返回值修改为true。

最后代码如下:

  1. package com.xdw.demo; 
  2.  
  3. import com.xdw.demo.slice.MigrationAbilitySlice; 
  4. import ohos.aafwk.ability.Ability; 
  5. import ohos.aafwk.ability.IAbilityContinuation; 
  6. import ohos.aafwk.content.Intent; 
  7. import ohos.aafwk.content.IntentParams; 
  8.  
  9. public class MigrationAbility extends Ability implements IAbilityContinuation { 
  10.     @Override 
  11.     public void onStart(Intent intent) { 
  12.         super.onStart(intent); 
  13.         super.setMainRoute(MigrationAbilitySlice.class.getName()); 
  14.  
  15.     } 
  16.  
  17.  
  18.     @Override 
  19.     public boolean onStartContinuation() { 
  20.         return true
  21.     } 
  22.  
  23.     @Override 
  24.     public boolean onSaveData(IntentParams intentParams) { 
  25.         return true
  26.     } 
  27.  
  28.     @Override 
  29.     public boolean onRestoreData(IntentParams intentParams) { 
  30.         return true
  31.     } 
  32.  
  33.     @Override 
  34.     public void onCompleteContinuation(int i) { 
  35.  
  36.     } 

想了解更多内容,请访问:

51CTO和华为官方合作共建的鸿蒙技术社区

https://harmonyos.51cto.com

 

责任编辑:jianghua 来源: 鸿蒙社区
相关推荐

2020-11-06 12:12:35

HarmonyOS

2021-05-28 09:52:00

鸿蒙HarmonyOS应用

2011-05-11 16:42:21

.NET Remoti

2009-10-09 16:13:16

VB开发分布式

2021-01-21 09:45:36

鸿蒙HarmonyOS分布式

2021-07-23 08:57:32

鸿蒙HarmonyOS应用

2022-06-20 15:32:55

Stage模型分布式开发

2011-12-22 09:21:04

云计算Hadoop大数据

2020-09-29 19:20:05

鸿蒙

2021-07-22 10:20:21

鸿蒙HarmonyOS应用

2020-11-13 12:09:46

HarmonyOS

2017-03-02 13:19:43

dubbo分布式框架

2010-08-12 17:56:58

ibmdwRational

2020-11-09 11:56:49

HarmonyOS

2022-06-16 07:31:15

MySQL服务器服务

2015-06-01 10:31:43

微软开源rDSN

2019-04-30 09:17:31

Ceph存储OSD

2022-08-04 00:05:11

系统分布式流量

2009-11-16 14:57:56

宽带路由器

2022-02-17 18:08:04

OpenHarmon应用开发鸿蒙
点赞
收藏

51CTO技术栈公众号