背景:开心的写bug中,突然接到极光工作人员通知,总结表达意思是:以后免费版的极光开发用户 在极光平台上的应用 可能会收到其他应用的推送广告。
问了一下升级vip的费用,回复3.6w/年,脑海里想了一下如果和老板说花钱升级,老板听到这个消息后的表情,果断放弃。直接更换其他三方,因为之前有其他项目用的是友盟推送,所以直接更换为友盟推送。
二话不说 ,登录账号,开发者中心,开始动手。集成大概分为几个步骤:
1.个人中心创建应用 -目的是为了获取key和secret
2.接入Push SDK 具体接入步骤参考官网接入文档:开发者中心
3.添加测试设备测试
4.创建测试消息测试
测试结果,收不到。排查原因后台错误日志:
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)
想起来 ,集成过程中有一步没有做。
奇怪的是去官网下载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
代码是这样的:
重新测试,可以收到推送了