友盟推送集成方案攻略(Push SDK 6.2.0版本)

背景:开心的写bug中,突然接到极光工作人员通知,总结表达意思是:以后免费版的极光开发用户 在极光平台上的应用 可能会收到其他应用的推送广告。

友盟推送集成方案攻略(Push SDK 6.2.0版本)

问了一下升级vip的费用,回复3.6w/年,脑海里想了一下如果和老板说花钱升级,老板听到这个消息后的表情,果断放弃。直接更换其他三方,因为之前有其他项目用的是友盟推送,所以直接更换为友盟推送。


二话不说 ,登录账号,开发者中心,开始动手。集成大概分为几个步骤:


1.个人中心创建应用 -目的是为了获取key和secret


2.接入Push SDK 具体接入步骤参考官网接入文档:开发者中心


3.添加测试设备测试

友盟推送集成方案攻略(Push SDK 6.2.0版本)

4.创建测试消息测试

友盟推送集成方案攻略(Push SDK 6.2.0版本)

测试结果,收不到。排查原因后台错误日志:


   java.lang.IllegalArgumentException: ResClass未初始化,请确保你已经添加了必要的资源。同时确保你在混淆文件中添加了com.dati.zhiduoduo.world.R$* 。 field=umeng_push_notification_default_large_icon

   at com.umeng.message.common.c.a(Res.java:223)

   at com.umeng.message.common.c.d(Res.java:152)

   at com.umeng.message.UmengMessageHandler.getLargeIcon(UmengMessageHandler.java:502)

   at com.umeng.message.UmengMessageHandler.a(UmengMessageHandler.java:437)

   at com.umeng.message.UmengMessageHandler.dealWithNotificationMessage(UmengMessageHandler.java:161)

   at com.umeng.message.UmengMessageHandler.handleMessage(UmengMessageHandler.java:71)

   at com.umeng.message.UmengMessageCallbackHandlerService.a(UmengMessageCallbackHandlerService.java:162)

   at com.umeng.message.service.JobIntentService$a.a(JobIntentService.java:235)

   at com.umeng.message.service.JobIntentService$a.doInBackground(JobIntentService.java:227)

   at android.os.AsyncTask$2.call(AsyncTask.java:334)

   at java.util.concurrent.FutureTask.run(FutureTask.java:266)

   at java.util.concurrent.ThreadPoolExecutor.processTask(ThreadPoolExecutor.java:1187)

   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)

   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)

   at java.lang.Thread.run(Thread.java:784)


想起来 ,集成过程中有一步没有做。

友盟推送集成方案攻略(Push SDK 6.2.0版本)

奇怪的是去官网下载demo,里面也没有这两个文件,联系客服给到解决方案:

将集成文档中的这行代码

PushAgent mPushAgent = PushAgent.getInstance(this);

替换为:

      String resRpkg = "com.jky.xxx"; // R.layout.upush_bar_image_notification 中 R 的包名路径
        PushAgent mPushAgent = PushAgent.getInstance(this);
        mPushAgent.setResourcePackageName(resRpkg);

com.xxx.xxx为包名路径或者applicationid

代码是这样的:

友盟推送集成方案攻略(Push SDK 6.2.0版本)

重新测试,可以收到推送了

友盟推送集成方案攻略(Push SDK 6.2.0版本)

友盟推送集成方案攻略(Push SDK 6.2.0版本)



上一篇:ECS使用有感


下一篇:apache https配置