# 项目构建时，报依赖库版本不一致

#### 问题现象

项目中涉及了三HAR，分别是fastsdk、finesdk、baseLibrary，其中fastsdk依赖finesdk和baseLibrary，finesdk又依赖了baseLibrary，fastsdk和finesdk要作为独立的库要提供给第三方。

打包的时候是先打被依赖的HAR包，将产物放到要依赖的module的libs目录下，通过文件依赖的形式依赖。现在在测试过程中发现，新建工程依赖fastsdk后，运行时总是报错。

错误日志：

```
hvigor Finished :entry:default@DoNativeStrip... after 258 ms
> hvigor Finished :entry:default@CacheNativeLibs... after 622 ms
> hvigor ERROR: Failed :entry:default@CompileArkTS...
> hvigor ERROR: ArkTS:ERROR Failed to execute es2abc.
Error Message: Failed to emit /Users/DevEcoStudioProjects/FastSDKDemo/entry/build/default/intermediates/loader_out/default/ets/modules.abc, error: Field {&finesdk/Index&1.0.0.moduleRecordIdx} has different value.
If you're using any cache file generated by older version of SDK, please try cleaning the cache files and rebuild
GenerateProgram Failed!
```

```
ERROR: ArkTS:ERROR Failed to execute es2abc.
```

#### 背景知识

引用三方HAR，包括从仓库进行安装、从本地文件夹和本地压缩包中进行安装三种方式。详见：引用共享包。

#### 问题定位

1.  编译配置项是否有误。比如：build-profile.json5文件中的useNormalizedOHMUrl配置是否为true。
2.  排查缓存文件是否有清除干净。

#### 分析结论

1.  build-profile.json5文件中的useNormalizedOHMUrl配置为true。
2.  编译缓存和ohpm缓存问题。

#### 修改建议

*   使用跨模块导入方式时，build-profile.json5文件中的useNormalizedOHMUrl需配置为false或者去除该属性。
*   清除ohpm和编译缓存，下载ohpm包并重新编译，操作如下：
    1.  先点击菜单Build->Clean Project，在控制台执行ohpm clean。
    2.  然后点击菜单File->Invalidate Caches...，弹窗选项全选执行并重启。
    3.  再在控制台执行ohpm install。
    4.  最后点击菜单Build->Rebuild Project即可。