HarmonyOS鸿蒙Next中在工程级的build-profile.json5中添加"multiProjects": true,构建工程运行后无法找到引用har包中的rawfile中的资源

HarmonyOS鸿蒙Next中在工程级的build-profile.json5中添加"multiProjects": true,构建工程运行后无法找到引用har包中的rawfile中的资源 在工程级的build-profile.json5中添加"multiProjects": true,构建工程运行后无法找到引用har包中的rawfile中的资源

3 回复
测试demo:
entry:Index.ets
~~~
@Entry
@Component
struct Index {
  @State message: string = 'Hello World';
  build() {
    RelativeContainer() {
      Text($r('app.string.page_show'))
        .id('HelloWorld')
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
        .alignRules({
          center: { anchor: '__container__', align: VerticalAlign.Center },
          middle: { anchor: '__container__', align: HorizontalAlign.Center }
        })
    }
    .height('100%')
    .width('100%')
  }
}
~~~
oh-package.json5
~~~
{
  "name": "entry",
  "version": "1.0.0",
  "description": "Please describe the basic information.",
  "main": "",
  "author": "",
  "license": "",
  "dependencies": {
    'library': 'file:../library'
  }
}
~~~
har包
library:
resources/base/element/string.json
~~~
{
  "string": [
    {
      "name": "page_show",
      "value": "page from package"
    }
  ]
}
~~~
工程级的build-profile.json5
~~~
{
  "app": {
    "signingConfigs": [],
    "products": [
      {
        "name": "default",
        "signingConfig": "default",
        "compatibleSdkVersion": "5.0.0(12)",
        "runtimeOS": "HarmonyOS",
        "buildOption": {
          "strictMode": {
            "caseSensitiveCheck": true,
            "useNormalizedOHMUrl": true
          }
        }
      }
    ],
    "multiProjects": true,
    "buildModeSet": [
      {
        "name": "debug"
      },
      {
        "name": "release"
      }
    ]
  },
  "modules": [
    {
      "name": "entry",
      "srcPath": "./entry",
      "targets": [
        {
          "name": "default",
          "applyToProducts": [
            "default"
          ]
        }
      ]
    },
    {
      "name": "library",
      "srcPath": "./library"
    }
  ]
}
~~~

更多关于HarmonyOS鸿蒙Next中在工程级的build-profile.json5中添加"multiProjects": true,构建工程运行后无法找到引用har包中的rawfile中的资源的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,当在build-profile.json5中添加"multiProjects": true后,构建工程时无法找到引用har包中的rawfile资源,可能是由于以下原因:

  1. 路径问题:在多项目模式下,资源的路径可能发生了变化。确保在引用rawfile资源时,路径是正确的。可能需要根据新的项目结构调整路径。

  2. 资源未正确打包:在多项目模式下,确保rawfile资源已经正确打包到har包中。检查构建日志,确认资源是否被包含在最终的har包中。

  3. 依赖关系未正确配置:在多项目模式下,确保主项目正确依赖了包含rawfile资源的子项目。检查build-profile.json5中的dependencies配置,确保所有依赖项都已正确声明。

  4. 构建顺序问题:在多项目模式下,构建顺序可能会影响资源的可用性。确保包含rawfile资源的子项目在主项目之前构建。

  5. 文件权限问题:检查rawfile资源的文件权限,确保它们具有正确的读取权限。

  6. 缓存问题:有时构建缓存可能导致资源无法正确加载。尝试清理构建缓存,然后重新构建项目。

  7. IDE配置问题:确保IDE(如DevEco Studio)的配置与多项目模式兼容。检查IDE的设置,确保它能够正确处理多项目构建。

  8. 版本兼容性问题:确保使用的HarmonyOS SDK版本与多项目模式兼容。检查SDK的更新日志,确认是否存在已知的资源加载问题。

通过以上步骤,可以逐步排查并解决在HarmonyOS鸿蒙Next中无法找到引用har包中rawfile资源的问题。

在HarmonyOS鸿蒙Next中,如果你在build-profile.json5中设置了"multiProjects": true,但在构建工程后无法找到引用har包中的rawfile资源,可能是由于资源路径问题。请检查以下几点:

  • 资源路径配置:确保在build-profile.json5中的"resource"字段正确配置了har包的资源路径。
  • 资源引用方式:在代码中引用rawfile资源时,使用正确的相对路径或绝对路径。
  • 构建顺序:确保在构建时,依赖的har包已正确构建并包含所需的资源文件。
  • 模块依赖:在oh-package.json5中确认依赖的har包已被正确引用。

如果问题仍然存在,建议检查构建日志,查找具体的错误信息并进行针对性修复。

回到顶部