文章目录
这里记录从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版本。
我想为Heroku构建一个Rails3应用程序。他们使用Postgres作为他们的数据库,所以我通过MacPorts安装了postgres9.0。现在我需要一个postgresgem并且共识是出于性能原因你想要pggem。但是我对我得到的错误感到非常困惑当我尝试在rvm下通过geminstall安装pg时。我已经非常明确地指定了所有postgres目录的位置可以找到但仍然无法完成安装:$envARCHFLAGS='-archx86_64'geminstallpg--\--with-pg-config=/opt/local/var/db/postgresql90/defaultdb/po
尝试通过RVM将RubyGems升级到版本1.8.10并出现此错误:$rvmrubygemslatestRemovingoldRubygemsfiles...Installingrubygems-1.8.10forruby-1.9.2-p180...ERROR:Errorrunning'GEM_PATH="/Users/foo/.rvm/gems/ruby-1.9.2-p180:/Users/foo/.rvm/gems/ruby-1.9.2-p180@global:/Users/foo/.rvm/gems/ruby-1.9.2-p180:/Users/foo/.rvm/gems/rub
我正在编写一个包含C扩展的gem。通常当我写一个gem时,我会遵循TDD的过程,我会写一个失败的规范,然后处理代码直到它通过,等等......在“ext/mygem/mygem.c”中我的C扩展和在gemspec的“扩展”中配置的有效extconf.rb,如何运行我的规范并仍然加载我的C扩展?当我更改C代码时,我需要采取哪些步骤来重新编译代码?这可能是个愚蠢的问题,但是从我的gem的开发源代码树中输入“bundleinstall”不会构建任何native扩展。当我手动运行rubyext/mygem/extconf.rb时,我确实得到了一个Makefile(在整个项目的根目录中),然后当
我的最终目标是安装当前版本的RubyonRails。我在OSXMountainLion上运行。到目前为止,这是我的过程:已安装的RVM$\curl-Lhttps://get.rvm.io|bash-sstable检查已知(我假设已批准)安装$rvmlistknown我看到当前的稳定版本可用[ruby-]2.0.0[-p247]输入命令安装$rvminstall2.0.0-p247注意:我也试过这些安装命令$rvminstallruby-2.0.0-p247$rvminstallruby=2.0.0-p247我很快就无处可去了。结果:$rvminstall2.0.0-p247Search
由于fast-stemmer的问题,我很难安装我想要的任何rubygem。我把我得到的错误放在下面。Buildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingfast-stemmer:ERROR:Failedtobuildgemnativeextension./System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/rubyextconf.rbcreatingMakefilemake"DESTDIR="cleanmake"DESTDIR=
我已经在Sinatra上创建了应用程序,它代表了一个简单的API。我想在生产和开发上进行部署。我想在部署时选择,是开发还是生产,一些方法的逻辑应该改变,这取决于部署类型。是否有任何想法,如何完成以及解决此问题的一些示例。例子:我有代码get'/api/test'doreturn"Itisdev"end但是在部署到生产环境之后我想在运行/api/test之后看到ItisPROD如何实现? 最佳答案 根据SinatraDocumentation:EnvironmentscanbesetthroughtheRACK_ENVenvironm
当我尝试安装Ruby时遇到此错误。我试过查看this和this但无济于事➜~brewinstallrubyWarning:YouareusingOSX10.12.Wedonotprovidesupportforthispre-releaseversion.Youmayencounterbuildfailuresorotherbreakages.Pleasecreatepull-requestsinsteadoffilingissues.==>Installingdependenciesforruby:readline,libyaml,makedepend==>Installingrub
我们的git存储库中目前有一个Gemfile。但是,有一个gem我只在我的环境中本地使用(我的团队不使用它)。为了使用它,我必须将它添加到我们的Gemfile中,但每次我checkout到我们的master/dev主分支时,由于与跟踪的gemfile冲突,我必须删除它。我想要的是类似Gemfile.local的东西,它将继承从Gemfile导入的gems,但也允许在那里导入新的gems以供使用只有我的机器。此文件将在.gitignore中被忽略。这可能吗? 最佳答案 设置BUNDLE_GEMFILE环境变量:BUNDLE_GEMFI
这似乎非常适得其反,因为太多的gem会在window上破裂。我一直在处理很多mysql和ruby-mysqlgem问题(gem本身发生段错误,一个名为UnixSocket的类显然在Windows机器上不能正常工作,等等)。我只是在浪费时间吗?我应该转向不同的脚本语言吗? 最佳答案 我在Windows上使用Ruby的经验很少,但是当我开始使用Ruby时,我是在Windows上,我的总体印象是它不是Windows原生系统。因此,在主要使用Windows多年之后,开始使用Ruby促使我切换回原来的系统Unix,这次是Linux。Rub
我正在玩HTML5视频并且在ERB中有以下片段:mp4视频从在我的开发环境中运行的服务器很好地流式传输到chrome。然而firefox显示带有海报图像的视频播放器,但带有一个大X。问题似乎是mongrel不确定ogv扩展的mime类型,并且只返回text/plain,如curl所示:$curl-Ihttp://0.0.0.0:3000/pr6.ogvHTTP/1.1200OKConnection:closeDate:Mon,19Apr201012:33:50GMTLast-Modified:Sun,18Apr201012:46:07GMTContent-Type:text/plain