0

I am using baidu push service in my android app. It is working fine except in lollipop version. When i run the app in device with lollipop version it crashes.i am getting the below crash log.

    02-03 11:55:39.772: E/AndroidRuntime(17430): java.lang.RuntimeException: Unable to create application com.sample.myapp: java.lang.IllegalArgumentException: Service Intent must be explicit: Intent { act=com.baidu.android.pushservice.action.PUSH_SERVICE (has extras) }
02-03 11:55:39.772: E/AndroidRuntime(17430):    at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4521)
02-03 11:55:39.772: E/AndroidRuntime(17430):    at android.app.ActivityThread.access$1500(ActivityThread.java:144)
02-03 11:55:39.772: E/AndroidRuntime(17430):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1339)
02-03 11:55:39.772: E/AndroidRuntime(17430):    at android.os.Handler.dispatchMessage(Handler.java:102)
02-03 11:55:39.772: E/AndroidRuntime(17430):    at android.os.Looper.loop(Looper.java:135)
02-03 11:55:39.772: E/AndroidRuntime(17430):    at android.app.ActivityThread.main(ActivityThread.java:5221)
02-03 11:55:39.772: E/AndroidRuntime(17430):    at java.lang.reflect.Method.invoke(Native Method)
02-03 11:55:39.772: E/AndroidRuntime(17430):    at java.lang.reflect.Method.invoke(Method.java:372)
02-03 11:55:39.772: E/AndroidRuntime(17430):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
02-03 11:55:39.772: E/AndroidRuntime(17430):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
02-03 11:55:39.772: E/AndroidRuntime(17430): Caused by: java.lang.IllegalArgumentException: Service Intent must be explicit: Intent { act=com.baidu.android.pushservice.action.PUSH_SERVICE (has extras) }
02-03 11:55:39.772: E/AndroidRuntime(17430):    at android.app.ContextImpl.validateServiceIntent(ContextImpl.java:1674)
02-03 11:55:39.772: E/AndroidRuntime(17430):    at android.app.ContextImpl.startServiceCommon(ContextImpl.java:1703)
02-03 11:55:39.772: E/AndroidRuntime(17430):    at android.app.ContextImpl.startService(ContextImpl.java:1687)
02-03 11:55:39.772: E/AndroidRuntime(17430):    at android.content.ContextWrapper.startService(ContextWrapper.java:515)
02-03 11:55:39.772: E/AndroidRuntime(17430):    at com.baidu.android.pushservice.util.q.i(Unknown Source)
02-03 11:55:39.772: E/AndroidRuntime(17430):    at com.baidu.android.pushservice.util.q.l(Unknown Source)
02-03 11:55:39.772: E/AndroidRuntime(17430):    at com.baidu.android.pushservice.internal.PushManager.startWork(Unknown Source)
02-03 11:55:39.772: E/AndroidRuntime(17430):    at com.baidu.android.pushservice.apiproxy.BridgePushManager.startWork(Unknown Source)
02-03 11:55:39.772: E/AndroidRuntime(17430):    at com.baidu.android.pushservice.PushManager$40.run(Unknown Source)
02-03 11:55:39.772: E/AndroidRuntime(17430):    at com.baidu.android.pushservice.LoadExecutor.excuteMethod(Unknown Source)
02-03 11:55:39.772: E/AndroidRuntime(17430):    at com.baidu.android.pushservice.PushManager.startWork(Unknown Source)
02-03 11:55:39.772: E/AndroidRuntime(17430):    at com.sample.myapp.onCreate(HUSApp.java:62)
02-03 11:55:39.772: E/AndroidRuntime(17430):    at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1011)
02-03 11:55:39.772: E/AndroidRuntime(17430):    at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4518)
02-03 11:55:39.772: E/AndroidRuntime(17430):    ... 9 more

And given below is the code which throws exception

PushManager
                .startWork(getApplicationContext(),
                        PushConstants.LOGIN_TYPE_API_KEY, BaiduUtils
                                .getMetaValue(getApplicationContext(),
                                        "api_key")); 
andro-girl
  • 7,989
  • 22
  • 71
  • 94

2 Answers2

0

Since Android 5, bindService() must always be called with an explicit intents. See this answer: https://stackoverflow.com/a/28151732/3060087

You should change the intent that starts the PushService to be explicit (mentioning the package and service name) instead of implicit (mentioning just the action as an intent filter).

Another option is to use Android v19 or less as the target.

Community
  • 1
  • 1
Price
  • 2,683
  • 3
  • 17
  • 43
-1

old Baidu-Frontia-Full-Debug-2.0.6.jar update to pushservice-5.6.0.30.jar The system encounter this error,you can delete Frontia relevant class,end this error. http://developer.baidu.com/announcement/89