为了提高开发效率,需要将鸿蒙应用程序进行持续集成环境配置。我们采用Jenkins对鸿蒙应用的持续集成进行了配置。在进行Jenkins服务的编译环境设置时,下载了华为开发者网上的最新的DevEco Studio 的 2.1 Release版本后编译发现不通过,遇到了以下几个坑,花了一天时间总算是踩完,这里记录一下,以便他人遇到同样的问题时能尽快解决。
ERROR 1: 找不到本地 .har 包
错误信息如下:
Execution failed for task ':libnetwork:packageReleaseHar'.
> Error:The HAR generated by the libnetwork project is corrupted. The dependencies of the local HAR file are not supported during HAR building because the classes and HarmonyOS resources in the local HAR file dependencies are not packaged in the generated HAR.
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
出现了问题,就先去 Google 上 Search。发现基本搜索不到资料。
怎么办?
找客服,哈哈,华为这一点挺好的,可以再网站上找到客服的微信(忘记怎么找到的了。。。)
经过跟客服和 DevEco Studio 的工程师沟通,告知引入本地har文件的方式新版本中发生了变化。解决办法是修改项目根目录 build.gradle文件。改动如下:
// Top-level build file where you can add configuration options common to all sub-projects/modules.
apply plugin: 'com.huawei.ohos.app'
......
allprojects {
repositories {
maven {
url 'https://mirrors.huaweicloud.com/repository/maven/'
}
maven {
url 'https://developer.huawei.com/repo/'
}
jcenter()
flatDir {
// 将 dir 'libs' 改为下面这样。
dir '../entry/libs'
}
}
}
......
在其他使用 lib 库的 module 的 build.gradle 文件中增加下面代码
apply plugin: 'com.huawei.ohos.library'
dependencies {
// xxx 是 har 文件名,不包含文件后缀
implementation(name: 'xxx', ext: 'har')
}
上面操作完成后,再进行编译,发现之前的错误发生了变化,错误信息如下面内容。有变化就是进步!!!
ERROR 2: usesCleartext is not a valid enum value
错误信息如下:
ConfigJsonError: File: /Users/bill/Works/ninebot/codes/harmony/ninebot-hap/entry/src/main/config.json:1 Reason: #/deviceConfig/default/network/usesCleartext: usesCleartext is not a valid enum value
上面提示 usesCleartext 标签无效了。应该是新的版本中把这个 usesCleartext变迁废弃了。鸿蒙默认支持https,如果要支持http,需要在config.json里增加network标签,属性标识 "usesCleartext": true。通过查看华为配置文件说明,确定把 usesCleartext 改为 cleartextTraffic即可。
WARNING 3 Missing required property 'installationFree'
然后看config.json中还存在一个问题,如下图:
Untitled.png
从截图中看到,需要在 distro 配置块中增加 'installationFree' 这个属性。增加上面配置后,再次编译,就通过了。
如果遇到跟我一样在配置文件中的错误,可以参考 配置文件元素 这个文档。
网友评论