这里记录从0开始基于HarmonyOS开发过程中出现的环境问题及可以解决方案。对于有Android开发经验的程序员来讲,这个过程应该很快,但有部分区别,一开始下载 HarmonyOS SDK时,我感觉这个环境准备很浪费时间,一个country.region 的配置问题(很stupid的问题),就差点儿让人不想去尝试这个IDE,进而放弃尝试HarmonyOS的尝试。
先注册开发者账号。
准备工作:安装nodejs, npm,jdk等。
下载DevEco Studio,打开加载IDE,首先需要选择nodejs目录。设置完成后,会显示HarmonyOS SDK, OpenHarmony SDK位置。OpenHarmony SDK是安装DevEco Studio后自带有的环境,默认OpenHarmony SDK地址在本地用户目录 C:\Users\username\AppData\Local\OpenHarmony\Sdk 下 。但HarmonyOS SDK就需要下载,这里一开始就可能看到弹窗上的红色英文提示 Network connectin failed. Check the network or HTTP proxy settings. 。在手动配置HarmonyOS SDK也会有这个提示,就像官网上提供的一样。
这个问题导致的原因是国家区域设置问题导致的。由于HarmonyOS目前还不是主流的移动OS,能搜索到的相关信息要么不知道怎么解决,要么直接告诉你修改国家区域配置,但不写明修改的配置文件在哪里。
其实这个问题的解决方案在官方文档中给了详细的解决方法,环境准备问题。这个区域默认值是US,将区域值由 US -> CN 就可以解决了。
这个区域设置导致的网络连接失败问题,其实挺stupid,但想想 DevEco Studio这个IDE是基于Intellij IDEA开发的也就不纠结了。
目前最新版本的DevEco Studio是3.0 Beta4,与之匹配的nodejs版本只能是 14.19.1~15.0.0。
若在使用DevEco Studio的IDE前,使用Android Studio进行了android开发,配置了Gradle Home等环境变量,可能导致使用DevEco Studio配置本地Gradle无法生效问题。
如图,将 Use Gradle from 项修改为本地gradle,之后确定。当再次打开IDE时,查看Gradle配置会发现,这里红框内的配置恢复到了最开始的项目默认gradle配置。
可以修改 Gradle user home 项,修改成一个专门为DevEco Studio使用的目录。因为默认下,这里读取到的是Android Studio配置的GradleUserHome目录。
类似Android adb命令工具,HarmonyOS SDK内也有hdc命令工具,为了更好的直接使用这个工具,将其配置系统成环境变量。
DevEco Studio在真机上运行app程序时,需要一个真实签名。若再debug时想快速生成签名,
若打开的界面显示没有登录,先进行登录操作。
当运行app遇到INSTALL_PARSE_FAILED_USESDK_ERROR
错误提示。
08/11 11:15:30: Launching com.ruixi.pack
$ hdc shell am force-stop com.ruixi.pack
$ hdc shell bm uninstall com.ruixi.pack
$ hdc file send D:\Workbench\RXElectricBLE_HarmonyOS\entry\build\outputs\hap\debug\entry-debug-rich-signed.hap /sdcard/15f82ebfa95f473e84971d2028490296/entry-debug-rich-signed.hap
$ hdc shell bm install -p /sdcard/15f82ebfa95f473e84971d2028490296/
Failure[INSTALL_PARSE_FAILED_USESDK_ERROR]
$ hdc shell rm -rf /sdcard/15f82ebfa95f473e84971d2028490296
Error while Deploying HAP
原因在于程序build.gradle文件中的compileSdkVersion
和compatibleSdkVersion
与调试设备的apiVersion和releaseVersion不一致。
通过hdc命令工具查看设备的apiVersion和releaseVersion。
hdc shell
getprop hw_sc.build.os.apiversion
getprop hw_sc.build.os.releasetype
执行结果:
> hdc shell
HWJDN2:/ $ getprop hw_sc.build.os.apiversion
5
HWJDN2:/ $ getprop hw_sc.build.os.releasetype
Release
HWJDN2:/ $
打开build.gradlew文件,修改compileSdkVersion
和compatibleSdkVersion
。
修改最低兼容api版本。