HormonyOS开发实记
目录前情开发过程中遇到的一些坑1. HarmonyOS JS SDK下载失败2. 创建华为账号3. 预览界面(Previewer)前情前天自己开始接触鸿蒙系统,下载并安装之后编译器之后,今天领导就让我去研究看看如何把原有的应用迁移到鸿蒙上,或者说有什么难度。所以现在从自己研究变成了任务开发过程中遇到的一些坑1. HarmonyOS JS SDK下载失败安装后打开编译器首先要下载各种SDK,其中有一
HormonyOS APP开发过程中遇到的一些坑or记录
1. HarmonyOS JS SDK下载失败
安装后打开编译器首先要下载各种SDK,其中有一个JS SDK,这个容易下载失败。第一次下载失败的时候,看了官方的建议是配置代理,由于我是可以访问外网的,所以整一个安装过程都没有采用代理,单独对这个采用代理的话设置完又会恢复成没有代理的情况,所以这个方法对我没什么用。
JS SDK下载涉及到npm,所以我就觉得是自己的npm版本太低了,毕竟是18年装的,后面一直没用过,所以我就把npm升级到最新版本,但是还是不行,这个时候就只能百度了 。
刚好找到一篇文章,也是JS SDK下载失败,他用到的方法是升级Nodejs, 我就尝试的去升级(原来的版本是10+的(默认用的是安装编译器是编译器自带的nodejs,后面我改成自己的以以前安装的也不行)),本来下载了13+,发现只能是win8以上,所以改下12+的,升级了这个之后,新建项目,build的过程就把JS SDK下载好了,也可以在配置里面自己手动下载(直接搜SDK, 找到HarmonyOS SDK)
2. 创建华为账号
创建完项目之后,运行需要登录华为账号,此时你自己需要注册一个华为开发者账号并实名,最好先做这一步,再尝试运行运行项目。不然,先运行项目发现需要注册或者实名再去搞的话,就会遇到实名之后编译识别不到,需要删除好几次浏览器缓存或者重新打浏览器跟编译器。
3. 预览界面(Previewer)
想要预览界面时发现打开失败:Previewer Engine start Failed. 在晚上找了几篇文章,客服建议在win10环境下做开发,本身自己也想升级很久了,趁此机会搞定它,所以现在正在升级系统。。。
花了一晚上升级成win10之后Previewer就正常了
4. fraction跳转Ability/AbilitySlice问题(后面有较为准确的详细用法的链接)
fraction是一个类似Android的fragment的一个组件,具体如何使用可参考这篇文章鸿蒙 Fraction 的基础用法和生命周期_xq610928的博客-CSDN博客
在fragment中,是可以通过intent跳到Activity的,在这边我也想是想这个效果。刚才是的操作是建了一个新的AbilitySlice,想在fraction中跳到AbilitySlice,后面发现跳转不了,搜了很久,搜到一篇
如何实现Fraction跳转到AbilitySlice-鸿蒙HarmonyOS技术社区-鸿蒙官方合作伙伴-51CTO.COM 也是有人提问fraction跳到AbilitySlice的问题,解决方法是通过跳到Ability来打开对应的主AbilitySlice,而不是直接跳到AbilitySlice
跳转代码:
打码地方是包名
补充:
本来以为fraction是只能通过跳Ability来打开对应的主AbilitySlice,后面发现实际上是可以通过配置来跳副AbilitySlice,这样就不需要创建多个无用的Ability,一个模块对应一个Ability,模块里面的功能页面则为AbilitySlice,减少垃圾代码。
跳转步骤如下:
1. 在config.json配置文件中配置
在actions中添加"action.detail" ,name为fraction所在的Ability
2. 在Ability(步骤1中name指向的Ability)的onStart方法中配置副路由,指向所需AbilitySlice
addActionRoute("action.detail", NewsdetailAbilitySlice.class.getName());
与步骤1的配置对应上了
3. 调用
Intent intent = new Intent();
Operation operation =
new Intent.OperationBuilder()
.withBundleName(getBundleName())
.withAbilityName(MainAbility.class.getName())
.withAction("action.detail")
.build();
intent.setOperation(operation);
.withAction("action.detail"),此处为步骤1配置的action名称
这样就可以实现fraction跳转AbilitySlice
上诉说法不是很准确,可看另外一篇文章HarmonyOS fraction跳转Ability/AbilitySlice问题_Angus的博客-CSDN博客
5. 鸿蒙WebView 空指针问题
使用WebView的是一定要用全类名(包名+类名)ohos.agp.components.webengine.WebView
使用全类名跟使用类名指向的都是同一个WebView类,但是使用类名就会出现findComponentById获取不到WebView组件,导致WebView空指针,无法进行页面加载
6. 网络请求访问
内容较多,详情参见这一篇 HarmonyOS网络访问_Angus的博客-CSDN博客
7.布局文件中需要用到app:等前缀的属性时,需要在最外层容器添加如下属性值
xmlns:app="http://schemas.huawei.com/res/ohos-auto"
8.如何关闭AbilitySlice,即安卓中的finish
直接调用terminate()方法,即可关闭AbilitySlice
9. 鸿蒙 previewer预览加载失败问题
在entry下面的gradle文件中配置了数据库文件的路径,导致previewer加载失败,注释了之后预览就正常了
10. 鸿蒙 previewer 无法预览图片问题
如图,设置了两张默认图片,但是预览只显示了一张,运行则是正常的
原因是第一张图片的格式webp,第二张是png格式,目前预览好像只能显示png跟jpg格式的图片
持续更新中。。。
更多推荐
所有评论(0)