解决阿里推送sdk 3.0以上初始化报“init cloudchannel failed -- errorcode:10212 -- errorMessage:静默连接进程未初始化”的问题

2023-11-17

解决方案如下:

   @Override
    public void onCreate() {
        super.onCreate();
        //注意:这句要放到最前面执行,必须是 在 android:process=":channel"
        initCloudChannel(this);
        //我的项目是多进程,例如
         String processName = getProcessName();
        switch (processName) {
            case "com.xxx.xxx":
                init();
                break;
            case "com.xxx.xxx:childprocess":
               init2();
                break;
            default:
                break;
        }
        
  }
 /**
     * 初始化云推送通道
     *
     * @param applicationContext
     */
    private void initCloudChannel(Context applicationContext) {
        PushServiceFactory.init(applicationContext);
        CloudPushService pushService = PushServiceFactory.getCloudPushService();
        pushService.register(applicationContext, new CommonCallback() {
            @Override
            public void onSuccess(String response) {
                Log.d(TAG, "init cloudchannel success " + response);
            }

            @Override
            public void onFailed(String errorCode, String errorMessage) {
                Log.d(TAG, "init cloudchannel failed -- errorcode:" + errorCode + " -- errorMessage:" + errorMessage);
            }
        });
    }

一开始我的错误初始化如下

 @Override
    public void onCreate() {
        super.onCreate();
         String processName = getProcessName();
        switch (processName) {
            case "com.xxx.xxx":
                initCloudChannel(this); //注意:这句要放到最前面执行,必须是 在 android:process=":channel"
                init();
                break;
            case "com.xxx.xxx:childprocess":
               init2();
                break;
            default:
                break;
        }   
  }

然后就去官网搜了错误码 10212 常见错误码,找到一句“默认为channel进程”很关键,然后我去AndroidManifest.xml中看了一下android:process配置如下:

在这里插入图片描述
看到阿里sdk都是自己开了一个channel进程来做推送保活操作,顺便看了一下PushExtActivity源码,发现里面开启一个1像素的界面,也就是双进程守护里面我们用到的qq保活1像素方案,有部分做了混淆,但是核心代码还是可以看的清楚。
在这里插入图片描述

造成初始化失败原因总结

1、 用户在自定义Application中(如MyApplication)执行推送SDK初始化时做了进程判断,导致初始化操作只在主进程执行。其他进程中没有初始化
2、 用户在MainActivity中进行相关初始化,activity只会在主进程创建,导致相关操作只能在主进程执行。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

解决阿里推送sdk 3.0以上初始化报“init cloudchannel failed -- errorcode:10212 -- errorMessage:静默连接进程未初始化”的问题 的相关文章

随机推荐

  • sql server 分组,取每组的前几行数据

    sql中group by后 获取每组中的前N行数据 目前我知道的有2种方法 比如有个成绩表 里面有字段学生ID 科目 成绩 我现在想取每个科目的头三名 1 子查询 select from score s where StudentName
  • 深入理解设计原则之组件构建原则【软件架构设计】

    系列文章目录 C 高性能优化编程系列 深入理解软件架构设计系列 深入理解设计模式系列 高级C 并发线程编程 困难只能吓倒懦夫懒汉 而胜利永远属于攀登高峰的人 Difficulties can only be intimidated by a
  • java内存分页工具类

    hutool 依赖
  • Android 首次开机进入 Launcher3 前黑屏几秒的情况问题的总结

    Android 首次开机进入 Launcher3 前黑屏几秒的情况问题的总结 首先 让我们来探讨一下 Android 系统在首次开机时为何会出现黑屏几秒的情况 在 Android 系统启动过程中 首先会加载 Linux 内核 然后启动 An
  • 关于生成图片

    数组生成图片 image Image fromarray np uint8 arr arr的shape必须是3在后面 比如 375 500 3 tensor生成图片 trans transforms ToPILImage image tra
  • 华为OD机试 - 代表团坐车(Java)

    题目描述 某组织举行会议 来了多个代表团同时到达 接待处只有一辆汽车 可以同时接待多个代表团 为了提高车辆利用率 请帮接待员计算可以坐满车的接待方案 输出方案数量 约束 一个团只能上一辆车 并且代表团人数 代表团数量小于30 每个代表团人数
  • c++栈的练习题

    1 Problem Detail 入门 火车编组 追梦算法网 栈的练习题 include
  • System.UnauthorizedAccessException: Access to the path is denied

    这个异常一般是操作文件读写时发生 一般有以下四个原因 调用方没有所需的权限 该文件是一个正在使用的可执行文件 路径是一个目录 该文件只读
  • javascript中的数字校验

    javascript限制输入的只能是数字 判断event keyCode的值 并将它限定只能为数字 如果不是数字 则返回错误 如果是数字 则继续 我先介绍验证javascript是否是数字另一种方式 通过下面的函数来实现 function
  • Unity3D之MonoBehaviour

    Unity3D中的MonoBehaviour是一种基于组件的编程架构 用于开发游戏和应用程序 它是Unity引擎中用于创建行为的基类之一 并且可以让你通过重写其方法来定义对象在游戏运行时的行为 首先 在Unity中创建一个游戏对象并向其添加
  • 使用vue+echarts世界地图航线路线

    这是一个vue结合echarts做的船舶轨迹运行线路图 一 安装echarts npm install echarts 二 全局引入 在全局引入 需要在main js文件中 引入echarts import echarts from ech
  • Unity3D模型

    SolidWorks建模导入Unity 前言 使用的版本 SolidWorks导入3DMax 3DMax导入Unity 结尾 前言 本篇主要作为个人经验记录 因项目需要将SW的模型导入Unity中使用 但SW中建模为实体而Unity多为面
  • Java中创建对象时内存中的情况

    public class Phone public String brand public double price public String color public void call String name System out p
  • conda 国内源配置

    修改 condarc show channel urls true channels https mirrors tuna tsinghua edu cn anaconda cloud conda forge https mirrors t
  • Unity中的异步编程【1】—— Unity与async 、 await

    新手在Unity里写东西 一个方法的内容如果写复杂了 容易把Uinty写死 就会卡帧 用流行的话来总结就是 在Update里面活生生把天聊死了 此外 如果新手才入门 不擅长使用消息 事件来进行异步的统筹 一门心思在Update里面实现各种有
  • USB PHY

    USB PHY负责最底层的信号转换 作用类似于网口的PHY 有两种接口 一种是ULPI 一种是UTMI 前者PIN少 后者PIN多 所以如果用ULPI PHY一般外部另接 用UTMI PIN多 一般内置 PHY内置或者外置要看芯片资料 PO
  • 搭建区块链底层网络Fisco-Bcos+WeBase+Ubuntu(保姆级别)

    目录 一 前言 1 所需要准备的环境 Ubuntu20 04 2 具体虚拟机教程请参考手把手教会你安装Ubuntu虚拟机 保姆级教程 pjlpjlpjl的博客 CSDN博客 2 本文章主要讲解 3 所需文件 build chain sh c
  • 2022年数维杯数学建模C题 电动汽车充电站的部署优化策略求解全过程文档及程序

    2022年数维杯数学建模 C题 电动汽车充电站的部署优化策略 原题再现 近年来 随着化石能源的逐渐枯竭和环境污染的不断加剧 电动汽车 EV 作为传统燃油车的主要替代品之一 得到了快速的发展 据国际能源署统计 2019年全球电动私家车已达 7
  • 【Python时间复杂度和空间复杂度】

    时间复杂度和空间复杂度 1 测试运行时间示例 2 时间复杂度 2 1列表数据结构时间复杂度计算 2 2 字典数据结构时间复杂度计算 3 空间复杂度 4 参考链接 算法分析是基于每种算法使用的计算资源量来比较算法 我们比较两个算法 说一个比另
  • 解决阿里推送sdk 3.0以上初始化报“init cloudchannel failed -- errorcode:10212 -- errorMessage:静默连接进程未初始化”的问题

    解决方案如下 Override public void onCreate super onCreate 注意 这句要放到最前面执行 必须是 在 android process channel initCloudChannel this 我的