打包报错:
hvigor ERROR: Failed ::PackageApp…
hvigor ERROR: Tools execution failed.
2024/08/26 12:03:01.386 - Ohos BundleTool [Error]: module phone and it’s dependencies size is 5.24MB, which is overlarge than 2MB.
2024/08/26 12:03:01.386 - Ohos BundleTool [Error]: checkAtomicServiceModuleSize failed on device phone.
2024/08/26 12:03:01.386 - Ohos BundleTool [Error]: checkFileSize failed.
2024/08/26 12:03:01.386 - Ohos BundleTool [Error]: Compressor::compressProcess check atomic service size fail.
2024/08/26 12:03:01.386 - Ohos BundleTool [Error]: Compressor::compressProcess compress failed.
2024/08/26 12:03:01.387 - Ohos BundleTool [Error]: CompressEntrance::main exit, compress failed
Detail: Please check the message from tools.
hvigor ERROR: BUILD FAILED in 1 s 754 ms
目录结构如图所示:
解决方案
元服务中,所有包的大小总和不能超过10M,单个包加上其采用dependency方式依赖的分包,大小不能超过2M。https://developer.huawei.com/consumer/cn/doc/atomic-guides-V5/atomic-subcontract-V5
可以把.app .hap 都可以改成.zip 可以直接看里面都包含了什么,看到底是哪个文件大了,当前分包,如果是dependencies方式使用,实际是会按分包+dependencies计算分包大小。
解决思路:
1、将公共代码抽成common模块,entry的hap包、特性hspXXX包依赖common。
2、使用router路由到hspXXX的页面(entry的dependency不再依赖hspXXX),比如
可以尝试优化一下user模块,试试将user模块再拆分成两个小的模块,尽量只使用高阶api,做少量代码开发