背景

最近基于HarmonyOS在写一个通讯录的项目,已经完成了一个java版本的通讯录,通讯录数据全部存储在sqlite数据库中。现在在着手写一个JS版本的通讯录,这时候关于JS版本中数据的读取,我做了3个版本,一个版本是JS里面存储的静态数据,一个版本是java Springboot做了一个服务端进行http网络交互,前面两个是我们在Android或者Web开发中很常见的两种开发方式,第三种方式就是我后面要做的重头戏了,就是HarmonyOS特色的分布式任务调度开发,目前所有功能已基本开发完成,后续我会陆续推出所有的开发课程和开源所有代码。

在第三种方式中,主要是JS版本做页面呈现,所有数据来源于之前已经写好的JAVA版本中的数据库的数据,因此我需要在之前的java版本中创建一个PA用来提供数据访问,同时在JS版本的FA中调用PA的数据,由于之前JAVA版本中的数据库操作都已经被我以dao接口的方式封装完成,再编写出PA的代码SO EASY。

回归本篇文章要研究的问题,为何我这里要着重强调bundleName呢,那是因为博主在开发的时候被这个bundleName折腾了一会。因为我在开发一个项目或则课题研究的时候,使用DevEco Studio喜欢只创建一个Project,然后创建多个Module的方式,这样更方便我使用一个git进行管理起来。请看我下面的项目工程截图

这里我创建了3个Module,entry是自动创建的,我没有在里面写代码,addressbookbyjs和addressbookbyjava就是我分别编写的两个版本的通讯录app。

这个时候,由于我是做分布式任务开发,需要Java版本的app和JS版本的app进行通信,两个app我都需要安装到模拟器上,可是这个时候我发现,如果保持工程现状,我只能安装其它一个app到模拟器上,因为他们的bundleName相同,那么这个时候肯定有人会说将bundleName修改成不同或者再创建一个工程不就完事了?

是滴,创建一个工程并且换一个bundleName的名字肯定可以解决,但是这个不是我想要的。

我原有的工程的bundleName名称为com.example.wdproject,那么所有模块下自动都会是这个名称

于是我将其中JS版本的Module的bundleName修改一下,修改为com.example.myproject,以为就OK了,这个时候发现报错了,注意不是编译报错也不是运行报错而是安装报错,是已经编译出了HAP文件的,只是安装不上去。报错信息如下

解决方案:此时必须要把工程默认生成的entry模块的bundleName也同步修改成com.example.myproject才能生效,这个时候,JS版本的APP就可以成功安装上去了,那么再来安装JAVA版本的时候,又得将JAVA版本模块的和entry模块的bundleName修改成一致,并且还不能和之前的JS版本的一致,于是都将他们修改成为com.example.wdproject,那么这个时候两个app就都成功安装到模拟器上了,可以顺利的进行分布式调度的测试了。

注意:每次一定要记得同步修改entry的bundleName

成功安装之后的截图如下

作者:软通夏德旺

想了解更多内容,请访问: 51CTO和华为官方战略合作共建的鸿蒙技术社区https://harmonyos.51cto.com/

HarmonyOS分布式任务调度开发之--你必须知道的bundleName的更多相关文章

  1. 【vs调试】PDB 文件:每个开发人员都必须知道的

    [vs调试]PDB文件:每个开发人员都必须知道的 GDB:The GNU Project Debugger, 将会包含代码中符号(自定义变量, 数据类型), 还有函数调用或类引用的关联性, 有了pdb ...

  2. PDB文件:每个开发人员都必须知道的

    PDB Files: What Every Developer Must Knowhttp://www.wintellect.com/CS/blogs/jrobbins/archive/2009/05 ...

  3. Webservice WCF WebApi 前端数据可视化 前端数据可视化 C# asp.net PhoneGap html5 C# Where 网站分布式开发简介 EntityFramework Core依赖注入上下文方式不同造成内存泄漏了解一下? SQL Server之深入理解STUFF 你必须知道的EntityFramework 6.x和EntityFramework Cor

    Webservice WCF WebApi   注明:改编加组合 在.net平台下,有大量的技术让你创建一个HTTP服务,像Web Service,WCF,现在又出了Web API.在.net平台下, ...

  4. 前端开发必须知道的JS(二) 闭包及应用

    http://www.cnblogs.com/ljchow/archive/2010/07/06/1768749.html 在前端开发必须知道的JS(一) 原型和继承一文中说过下面写篇闭包,加之最近越 ...

  5. 前端开发必须知道的JS之闭包及应用

    本文讲的是函数闭包,不涉及对象闭包(如用with实现).如果你觉得我说的有偏差,欢迎拍砖,欢迎指教. 在前端开发必须知道的JS之原型和继承一文中说过下面写篇闭包,加之最近越来越发现需要加强我的闭包应用 ...

  6. C#刨根究底:《你必须知道的.NET》读书笔记系列

    一.此书到底何方神圣? <你必须知道的.NET>来自于微软MVP—王涛(网名:AnyTao,博客园大牛之一,其博客地址为:http://anytao.cnblogs.com/)的最新技术心 ...

  7. (转)【推荐】初级.NET程序员,你必须知道的EF知识和经验

    转自:http://www.cnblogs.com/zhaopei/p/5721789.html [推荐]初级.NET程序员,你必须知道的EF知识和经验   阅读目录   [本文已下咒.先顶后看,会涨 ...

  8. 《你必须知道的.NET》读书笔记二:小OO有大原则

    此篇已收录至<你必须知道的.Net>读书笔记目录贴,点击访问该目录可以获取更多内容. 一.单一职责原则 (1)核心思想:一个类最好只做一件事,只有一个引起它变化的原因 (2)常用模式:Fa ...

  9. MVC中你必须知道的13个扩展点

    MVC中你必须知道的13个扩展点 pasting 转:http://www.cnblogs.com/kirinboy/archive/2009/06/01/13-asp-net-mvc-extensi ...

随机推荐

  1. 团队作业part6--复审与事后分析

    一.Alpha阶段项目复审:https://www.cnblogs.com/3Jax/p/13127401.html 二.事后诸葛亮分析:https://www.cnblogs.com/3Jax/p/ ...

  2. 使用.Net Core做个爬虫

    最近接手一个新项目,爬亚马逊分类.商品数据.记得大学的时候,自己瞎玩,写过一个爬有缘网数据的程序,那个时候没有考虑那么多,写的还是单线程,因为网站没有反爬,就不停的一直请求,记得放到实验室电脑上一天, ...

  3. nginx配置访问本地资源

    参考博客:https://www.cnblogs.com/xy51/p/9973326.html 需要访问路径:http://IP:10013/p1upgrade/picfiles/image73b4 ...

  4. JeecgBoot table 渲染图片

    使用jeecgboot框架,在table列表显示图片 使用Column 的customRender属性 通过以上设置,就会在列表页显示图片了

  5. 08-flask-使用pymysql

    代码 from flask import Flask from flask import render_template import pymysql # 创建flask对象 app = Flask( ...

  6. wsgi和asgi的关系

    什么是WSGI #CGI CGI(Common Gateway Interface,通用网关接口),定义客户端与Web服务器的交流方式的一个程序,例如正常情况下客户端发送过来一个请求,根据HTTP协议 ...

  7. Xrdp远程连接到CentOS7系统配置

    1         服务器端配置 1.1  查询是否已经安装epel库 打开已经安装了CentOS7的主机,以root用户登录,在桌面上打开一个终端,输入命令:rpm -qa|grep epel,查询 ...

  8. locust的使用

    一.简介 Locust是一款使用Python编写的压力测试工具,本篇总结会介绍在实际测试过程中遇到的问题 https://www.locust.io/ 使用Locust的原因是因为可以模拟的用户数量可 ...

  9. ASP.NET Core 中间件 自定义全局异常中间件以及 MVC异常过滤器作用

    中间件是一种装配到应用管道以处理请求和响应的软件. 每个组件: 选择是否将请求传递到管道中的下一个组件. 可在管道中的下一个组件前后执行工作. 请求委托用于生成请求管道. 请求委托处理每个 HTTP ...

  10. C# 生成6位短信验证码

    1 private string VerifyCode() 2 { 3 Random random = new Random(); 4 return random.Next(100000, 99999 ...