北京建设工程交易信息网站,国内免费的外贸平台,网站后台要怎么做,网页设计师网站大全前言 基于DevEco Studio 4.0 Beta2#xff0c;hvigorVersion为3.0.2#xff0c;开发了一个项目#xff0c;上传到了远程仓库#xff0c;当同事下载后#xff0c;却始终无法运行#xff0c;频繁报错#xff0c;由于API都是使用的9#xff0c;第一感觉就是开发环境不同hvigorVersion为3.0.2开发了一个项目上传到了远程仓库当同事下载后却始终无法运行频繁报错由于API都是使用的9第一感觉就是开发环境不同于是让其发来了他的开发环境DevEco Studio 3.1.1 ReleasehvigorVersion为2.4.2果然是环境不同那解决方式就简单了要么升级IDE要么hvigorVersion改为当前设备升级IDE确实可以解决但不是最优之解毕竟为了解决问题就来一次升级一是不方便二是大多数开发者都喜欢稳定版升级为Beta版着实不愿那就只能走第二种方式了但偏偏第二种方式始终解决不了查官网查社区资料匮乏到简直没有。 在Android Studio中出现开发环境不同无非就是更改build.gradle下gradle版本号和gradle-wrapper.properties文件里的版本号便可轻松解决问题但在DevEco Studio中这种方式似乎难以走通但是又不得不去解决毕竟在很多的场合下开发环境是很难达到统一的比如你去下载一个三方库想运行看看效果有可能就会遇到开发环境不同无法运行情况所以遇到问题就要去解决问题而不是逃避问题只有这样方可柳暗花明方可造福大众。 经过半天的摸索问题已经修复虽然现在回首感觉问题的解决方式很是简单但是在无资料错误提示不明的情况下解决起来真的无从下手好在最后没有白忙活一场于是就总结了一下如果你在开发HarmonyOS开发中也需要到了此类问题希望能给你带来一丝帮助。 本章的大纲如下 1、低版本IDE导入高版本项目报错信息
2、资料匮乏如何迎难而上
3、文件修改逐步解决问题
4、问题总结 一、低版本IDE导入高版本项目报错信息 当你开发环境低于目标项目开发环境时在导入项目后就会遇到如下的错误信息。 给出了两种解决途径一种是更改为本地的hvigorVersion一种是升级IDE当我们点击蓝色文字时就会主动触发其解决方式我们直接点击第一种。 可以发现在hvigor-config.json5文件中已改为你设备的版本号。 编译项目之后你会发现毛用没有虽然没错误了但是无法运行。 这就到了无解的地步找不到目标也就是可以运行的模块。 二、资料匮乏如何迎难而上 遇到如上的问题肯定是先去官网社区摸索一通但是丝毫没有找到解决的方式没办法只能自己调研其解决方式仿照着Android Studio类似的错误来解决DevEco Studio由于文件以及构建工具都发生了变化最后也难以排查出根本问题所在但是灵感却来了既然IDE可以类比那么项目同样可以类比。 高版本和低版本项目结构基本一样既然无法运行除了版本号不一致之外肯定还有部分文件不一致才导致了项目无法编译基于这种猜想针对高低版本两个项目所有的文件采取了一一类比经过验证这种方式是可行的但是是十分耗时的。 为了减少类比的文件数量索性都采取空工程的结构就是类比新创建的项目最后发现有多处文件不一致分别如下 1、根项目下的hvigorfile.ts文件 4.0以上版本 import { appTasks } from ohos/hvigor-ohos-plugin;export default {system: appTasks, /* Built-in plugin of Hvigor. It cannot be modified. */plugins:[] /* Custom plugin to extend the functionality of Hvigor. */
} 4.0以下版本 // Script for compiling build behavior. It is built in the build plug-in and cannot be modified currently.
export { appTasks } from ohos/hvigor-ohos-plugin;2、entry(主模块)下的hvigorfile.ts文件 4.0以上版本 import { hapTasks } from ohos/hvigor-ohos-plugin;export default {system: hapTasks, /* Built-in plugin of Hvigor. It cannot be modified. */plugins:[] /* Custom plugin to extend the functionality of Hvigor. */
} 4.0以下版本 // Script for compiling build behavior. It is built in the build plug-in and cannot be modified currently.
export { hapTasks } from ohos/hvigor-ohos-plugin;3、根项目下的build-profile.json5文件 4.0以上版本 {app: {signingConfigs: [],compileSdkVersion: 9,compatibleSdkVersion: 9,products: [{name: default,signingConfig: default,}],buildModeSet: [{name: debug,},{name: release}]},modules: [{name: entry,srcPath: ./entry,targets: [{name: default,applyToProducts: [default]}]}]
} 4.0以下版本 {app: {signingConfigs: [],compileSdkVersion: 9,compatibleSdkVersion: 9,products: [{name: default,signingConfig: default,}]},modules: [{name: entry,srcPath: ./entry,targets: [{name: default,applyToProducts: [default]}]}]
} 4、根项目下的hvigorw文件可以忽略 hvigorw文件虽然查出来了不一致但是只有一行内容不同HVIGOR_APP_HOMEpwd -P和HVIGOR_APP_HOME$(dirname $(readlink -f $0))后续经过验证没什么用所以这个文件大家可以忽略不用修改这个文件。 4.0以上版本 #!/bin/bash# ----------------------------------------------------------------------------
# Hvigor startup script, version 1.0.0
#
# Required ENV vars:
# ------------------
# NODE_HOME - location of a Node home dir
# or
# Add /usr/local/nodejs/bin to the PATH environment variable
# ----------------------------------------------------------------------------HVIGOR_APP_HOMEpwd -P
HVIGOR_WRAPPER_SCRIPT${HVIGOR_APP_HOME}/hvigor/hvigor-wrapper.js
warn() {echo echo -e \033[1;33mdate [%Y-%m-%d %H:%M:%S]$\033[0m
}error() {echo echo -e \033[1;31mdate [%Y-%m-%d %H:%M:%S]$\033[0m
}fail() {error $exit 1
}# Determine node to start hvigor wrapper script
if [ -n ${NODE_HOME} ];thenEXECUTABLE_NODE${NODE_HOME}/bin/nodeif [ ! -x $EXECUTABLE_NODE ];thenfail ERROR: NODE_HOME is set to an invalid directory,check $NODE_HOME\n\nPlease set NODE_HOME in your environment to the location where your nodejs installedfi
elseEXECUTABLE_NODEnodewhich ${EXECUTABLE_NODE} /dev/null 21 || fail ERROR: NODE_HOME is not set and not node command found in your path
fi# Check hvigor wrapper script
if [ ! -r $HVIGOR_WRAPPER_SCRIPT ];thenfail ERROR: Couldnt find hvigor/hvigor-wrapper.js in ${HVIGOR_APP_HOME}
fi# start hvigor-wrapper script
exec ${EXECUTABLE_NODE} \${HVIGOR_WRAPPER_SCRIPT} $4.0以下版本 #!/bin/bash# ----------------------------------------------------------------------------
# Hvigor startup script, version 1.0.0
#
# Required ENV vars:
# ------------------
# NODE_HOME - location of a Node home dir
# or
# Add /usr/local/nodejs/bin to the PATH environment variable
# ----------------------------------------------------------------------------HVIGOR_APP_HOME$(dirname $(readlink -f $0))
HVIGOR_WRAPPER_SCRIPT${HVIGOR_APP_HOME}/hvigor/hvigor-wrapper.js
warn() {echo echo -e \033[1;33mdate [%Y-%m-%d %H:%M:%S]$\033[0m
}error() {echo echo -e \033[1;31mdate [%Y-%m-%d %H:%M:%S]$\033[0m
}fail() {error $exit 1
}# Determine node to start hvigor wrapper script
if [ -n ${NODE_HOME} ];thenEXECUTABLE_NODE${NODE_HOME}/bin/nodeif [ ! -x $EXECUTABLE_NODE ];thenfail ERROR: NODE_HOME is set to an invalid directory,check $NODE_HOME\n\nPlease set NODE_HOME in your environment to the location where your nodejs installedfi
elseEXECUTABLE_NODEnodewhich ${EXECUTABLE_NODE} /dev/null 21 || fail ERROR: NODE_HOME is not set and not node command found in your path
fi# Check hvigor wrapper script
if [ ! -r $HVIGOR_WRAPPER_SCRIPT ];thenfail ERROR: Couldnt find hvigor/hvigor-wrapper.js in ${HVIGOR_APP_HOME}
fi# start hvigor-wrapper script
exec ${EXECUTABLE_NODE} \${HVIGOR_WRAPPER_SCRIPT} $ 三、文件修改逐步解决问题 经过高低项目文件一一对比一个新的项目也就三处文件不一样另一个可以忽略分别是根项目的hvigorfile.ts文件根项目的build-profile.json5文件和模块中的hvigorfile.ts文件当然了新的项目只有一个模块如果有多个模块那么就不止三处了需要注意的是无论几个模块hvigorfile.ts文件必须要都要修改和低版本保持一致。 1、根项目的hvigorfile.ts文件修改 修改前 import { hapTasks } from ohos/hvigor-ohos-plugin;export default {system: hapTasks, /* Built-in plugin of Hvigor. It cannot be modified. */plugins:[] /* Custom plugin to extend the functionality of Hvigor. */
} 修改后 export { hapTasks } from ohos/hvigor-ohos-plugin; 注意并不是简简单单把下面的代码删除还要把import改为export否则就会报如下错误一开始我就大意了忘了改这个错也折磨了好大一会。 2、根项目的build-profile.json5文件修改 当你把根项目的hvigorfile.ts文件修改之后迫不及待地编译后就会报如下地错误所以啊尽量统一修改文件后再编译否则就会各式问题扑面而来。 修改前 {app: {signingConfigs: [],compileSdkVersion: 9,compatibleSdkVersion: 9,products: [{name: default,signingConfig: default,}],buildModeSet: [{name: debug,},{name: release}]},modules: [{name: entry,srcPath: ./entry,targets: [{name: default,applyToProducts: [default]}]}]
} 修改后 也就是把buildModeSet字段删除。 {app: {signingConfigs: [],compileSdkVersion: 9,compatibleSdkVersion: 9,products: [{name: default,signingConfig: default,}]},modules: [{name: entry,srcPath: ./entry,targets: [{name: default,applyToProducts: [default]}]}]
} 3、主模块中的hvigorfile.ts文件修改 如果以上两个文件你更改之后仍然控制不住自己仍然迫不及待地进行编译不好意思你依然会遇到如下错误所以啊铁子听人劝吃饱饭一定要把所有的文件都更改后再编译就不会遇到错误了。 修改前 import { hapTasks } from ohos/hvigor-ohos-plugin;export default {system: hapTasks, /* Built-in plugin of Hvigor. It cannot be modified. */plugins:[] /* Custom plugin to extend the functionality of Hvigor. */
} 修改后 export { hapTasks } from ohos/hvigor-ohos-plugin; 注意并不是简简单单把下面的代码删除还要把import改为export否则还会报错。 4、成功编译且运行 以上三个文件修改之后便可以成功编译和运行。 四、问题总结 1、最重要的是修改每个模块下的hvigorfile.ts文件有几个就修改几个千万不要遗漏。 2、hvigorfile.ts文件下的文件修改除了删除代码还要把import改为export否则还会报错。 3、主模块与动态共享包和静态共享包模块的修改方式不一样需要了解一个是hapTasks
一个是harTasks。 主模块/动态共享包 export { hapTasks } from ohos/hvigor-ohos-plugin; 静态共享包 export { harTasks } from ohos/hvigor-ohos-plugin; 4、如果你有多个模块需要在根项目的build-profile.json5文件中的modules中进行添加模块如下所示 modules: [{name: entry,srcPath: ./entry,targets: [{name: default,applyToProducts: [default]}]},{name: xx,srcPath: ./xx}] 好了本篇文章就到这里了如果你也遇到了类似问题希望可以帮助到你。