HarmonyOS鸿蒙Next中集成高德地图后出现编译错误

HarmonyOS鸿蒙Next中集成高德地图后出现编译错误

  1. 集成最新版本的高德地图
  2. 出现如下编译错误: ERROR: Bytecode HARs: [@amap/amap_lbs_common, @amap/amap_lbs_map3d, @amap/amap_lbs_common] not supported when useNormalizedOHMUrl is not true.
  3. 设置项目的"useNormalizedOHMUrl": true
    出现页面跳转失败的问题,请问大佬,怎么解决

更多关于HarmonyOS鸿蒙Next中集成高德地图后出现编译错误的实战教程也可以访问 https://www.itying.com/category-93-b0.html

4 回复

看下是不是有依赖包配置也是true,请参考https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/ide-hvigor-faqs-V5#section1585241711814

设置"useNormalizedOHMUrl": true后,对项目的检查比较严格,不能相同资源出现不同引入方式,需要资源统一,编译器会对导入文件的大小写进行严格检查,如果文件名大小写不正确,将会导致编译报错。可能导致编译报错的原因包括:

  • 导入文件的大小写与路径不匹配。
  • 使用了相对路径或绝对路径引用方式,但未启用严格模式。 工程里所有的OHMUrl格式需统一。若引用了HAR/HSP,需确保HAR/HSP的OHMUrl格式与工程级build-profile.json5中的配置一致。

useNormalizedOHMUrl 为true的时候ohmurl使用的是新的拼接和解析方式,不能和旧的ohmurl混用,会导致运行时无法识别。

可采用以下两种方式解决该问题:

将报错的依赖包的工程级build-profile.json5中的useNormalizedOHMUrl修改为与当前工程一致,重新生成依赖包并替换(useNormalizedOHMUrl缺省默认值为false)。

{
  "app":
  {
    "products":
    [
    {
      "buildOption":
      {
        "strictMode":
        {
          "useNormalizedOHMUrl":true
        }
      }
    }
    ]
  }
}

如果与工程不一致的依赖包较多,建议修改工程的工程级build-profile.json5中的useNormalizedOHMUrl值以及替换其它的不一致的依赖包。

"modules":
[
      {
        name: "hsp",   // 引用的hsp包依赖
        srcPath: "../MyApplication_stageB/hsp",   // 引用的hsp包的路径(绝对和相对都可以)
  }
]

hsp修改了生效了吗,生效了可以不用管har,没有配置这项参数暂时可以不用管

module根目录下加个index.ets export导出一下 试一下

比如har包名叫vehicleKeyboard 在跟build-profile.json5同级的目录下新建index.ets

export {VehicleInput} from './src/coin/ets/components/VehicleInput'

然后引用的时候用import {VehicleInput } from @ohos/vehicle-keyboard’

参考链接:

[https://ohpm.openharmony.cn/#/cn/detail/@ohos%2Fprotobufjs](https://ohpm.openharmony.cn/#/cn/detail/@ohos%2Fprotobufjs)

更多关于HarmonyOS鸿蒙Next中集成高德地图后出现编译错误的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


为自己的地图不支持模拟器显示map,高德仅支持arm架构的模拟器,华为5.0x之后不支持windows下的arm架构模拟器。

在HarmonyOS鸿蒙Next中集成高德地图后出现编译错误,可能是由于以下原因引起的:

  1. 依赖库冲突:高德地图SDK可能依赖了某些与鸿蒙系统不兼容的第三方库,导致编译时出现冲突。检查项目中是否存在版本不匹配的依赖库。

  2. NDK配置问题:高德地图SDK可能使用了NDK(Native Development Kit)进行开发,而鸿蒙系统的NDK配置可能与Android不同。确保NDK版本和配置正确。

  3. 权限配置缺失:高德地图SDK需要特定的权限才能正常运行,如位置权限、网络权限等。检查config.json文件中是否已正确配置相关权限。

  4. API不兼容:高德地图SDK可能使用了鸿蒙系统不支持的API,导致编译失败。检查高德地图SDK的API调用,确保其与鸿蒙系统兼容。

  5. 编译环境问题:鸿蒙Next的编译环境可能与高德地图SDK的编译环境不匹配。确认使用的DevEco Studio版本和SDK版本是否支持高德地图的集成。

  6. 资源文件冲突:高德地图SDK可能包含与鸿蒙系统资源文件冲突的资源,如strings.xmlcolors.xml等。检查资源文件是否存在冲突。

  7. ProGuard或混淆配置:如果启用了ProGuard或混淆工具,可能导致高德地图SDK的某些类或方法被误删或混淆。检查混淆配置文件,确保高德地图SDK的相关类和方法不被混淆。

  8. 高德地图SDK版本问题:确保使用的高德地图SDK版本支持鸿蒙系统。可能需要更新到最新版本或使用专门为鸿蒙系统适配的SDK版本。

通过检查以上问题,可以定位并解决在鸿蒙Next中集成高德地图后出现的编译错误。

在HarmonyOS鸿蒙Next中集成高德地图时出现编译错误,可能原因包括:

  • 依赖未正确配置:检查build.gradle中高德地图的依赖版本是否与HarmonyOS兼容。
  • 权限未声明:确保在config.json中声明了必要的网络和位置权限。
  • API Key未配置:高德地图需要有效的API Key,检查是否在AndroidManifest.xml或代码中正确设置。
  • SDK版本冲突:确认高德地图SDK与HarmonyOS SDK版本无冲突。
  • 混淆规则缺失:在proguard-rules.pro中添加高德地图的混淆规则。

建议根据具体错误日志逐步排查问题。

回到顶部