必现,详细问题步骤见https://ask.dcloud.net.cn/question/103403
- 发布:2020-08-07 15:16
- 更新:2020-08-07 15:16
- 阅读:855
产品分类: uniapp/App
PC开发环境操作系统: Mac
PC开发环境操作系统版本号: 10.15.5 (19F101)
HBuilderX类型: 正式
HBuilderX版本号: 2.8.4
手机系统: Android
手机系统版本号: Android 8.0
手机厂商: 华为
手机机型: 华为P9
页面类型: vue
打包方式: 云端
项目创建方式: HBuilderX
操作步骤:
预期结果:
初始化成功
初始化成功
实际结果:
初始化失败
初始化失败
bug描述:
AppHookProxy 中的onCreate方法回调不及时,导致接入的云信sdk没有初始化成功。
翻看源码如下:
if (!SDK.isUniMPSDK() && this.d(var1) || SDK.isUniMPSDK() && this.f(var1)) {
AppRuntime.initX5(var1);
AppRuntime.initWeex(var1);//初始化插件的地方
}
问题点在this.d(var1)这个方法,方法如下:
public boolean d(Context var1) {
return var1.getPackageName().equals(RuningAcitvityUtil.getAppName(var1));
}
由于应用刚启动的时候框架存在多进程的情况,会初始化多次,但是由于这个方法的判断逻辑预先初始化的应用名称会多出进程名称,导致初次初始化的时候此判断逻辑返回false,导致sdk初始化失败。
例:packageName:com.test.app
appName: com.test.app:core
由于以上出现的问题会导致云信sdk初始化延后,导致初始化失败。
0 个回复