稻草人wei
稻草人wei
  • 发布:2020-08-06 14:13
  • 更新:2022-05-11 15:13
  • 阅读:913

【报Bug】Application生命周期异常

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Mac

PC开发环境操作系统版本号: 10.15.5 (19F101)

HBuilderX类型: 正式

HBuilderX版本号: 2.8.4

手机系统: Android

手机系统版本号: Android 8.0

手机厂商: 华为

手机机型: 华为P9

页面类型: vue

打包方式: 离线

项目创建方式: HBuilderX

示例代码:

uniapp代码:
public class NIMProxy implements AppHookProxy {
@Override
public void onCreate(Application application) {

    SDKOptions mSdkOptions = new SDKOptions();  
    mSdkOptions.appKey = NIM_APP_KEY;  
    NIMClient.init(application, null, mSdkOptions);  
}  

}

原生代码:
public class App extends Application {
@Override
public void onCreate() {
super.onCreate();
SDKOptions mSdkOptions = new SDKOptions();
mSdkOptions.appKey = NIM_APP_KEY;
NIMClient.init(this, null, mSdkOptions);
}
}

操作步骤:

打开uniapp集成的app点击登录就会log出来报错的:SDK should be config on Application#onCreate()!

打开原生app就不会有任何错误

预期结果:

和原生app一样的效果,没有报错(SDK should be config on Application#onCreate()!)

实际结果:

运行uniapp报错:SDK should be config on Application#onCreate()!云信sdk初始化失败

bug描述:

用uniapp接入云信sdk的时候需要在Application中初始化sdk,代码如下:
public class NIMProxy implements AppHookProxy {
@Override
public void onCreate(Application application) {

    SDKOptions mSdkOptions = new SDKOptions();  
    mSdkOptions.appKey = NIM_APP_KEY;  
    NIMClient.init(application, null, mSdkOptions);  
}  

}
运行会报:SDK should be config on Application#onCreate()!

但是在原生app中集成云信sdk中,代码如下:
public class App extends Application {
@Override
public void onCreate() {
super.onCreate();
SDKOptions mSdkOptions = new SDKOptions();
mSdkOptions.appKey = NIM_APP_KEY;
NIMClient.init(this, null, mSdkOptions);
}
}
却可以正常运行。
云信官方反应:初始化的时候必须要在Application中的onCreate方法中初始化。
麻烦问下AppHookProxy接口中的onCreate方法和原生中的onCreate方法是否一样, 可否开个和原生的onCreate方法出来,要不然云信sdk就没法接入了,谢谢

2020-08-06 14:13 负责人:无 分享
已邀请:
1***@qq.com

1***@qq.com

请问你这个问题解决了吗

  • 稻草人wei (作者)

    用离线打包改造application初始化逻辑就可以了

    2020-08-25 14:35

  • 稻草人wei (作者)

    云打包反正死活都是初始化失败,问题点已经确定就是之前看源码分析的

    2020-08-25 14:36

岁白

岁白

我也碰到了这个问题。请问一下怎么处理

l***@jzaiot.com

l***@jzaiot.com

请问怎么解决,头大啊

要回复问题请先登录注册