# 如何集成多个SDK解决不同abilityStage之间的冲突

#### 问题现象

应用集成多个SDK，不同的SDK均需要添加abilityStage工程文件。第一个SDK需要创建entry/src/main/ets/abilityStage/OneAbilityStage.ets，第二个SDK需要创建entry/src/main/ets/abilityStage/TwoAbilityStage.ets，而在模块的module.json5文件中添加srcEntry路径时，只能填入一个路径，如何解决该问题？

#### 背景知识

AbilityStage是一个Module级别的组件管理器，用于进行Module级别的资源预加载、线程创建等初始化操作，以及维护Module下的应用状态。

#### 解决方案

由于AbilityStage与Module一一对应，即一个Module拥有一个AbilityStage。因此，无法在模块的module.json5文件中配置多个srcEntry，即指向abilityStage文件的地址。如果项目中集成多个SDK均需要配置abilityStage工程文件，可以将不同SDK的abilityStage工程文件合并成一个。如果在合并过程中存在命名冲突的问题，可以在导入函数时，通过重命名的方法来解决。示例代码如下：

模仿OneSDK提供的方法：

```
export function preInit(str: string) {
  console.info('strOne' + str);
}
```

模仿TwoSDK提供的方法：

```
export function preInit(str: string) {
  console.info('strTwo' + str);
}
```

使用方合并采用的方法：

```
import AbilityStage from '@ohos.app.ability.AbilityStage';
import { preInit as preInitOne } from './OneAnalytics';
import { preInit as preInitTwo } from './TwoAnalytics';

export default class MyAbilityStage extends AbilityStage {
  onCreate() {
    preInitOne('One');
    preInitTwo('Two');
  }
};
```