java.lang.IllegalArgumentException: Service Intent must be explicit
来源:互联网 发布:淘宝外卖系统繁忙 编辑:程序博客网 时间:2024/06/05 18:29
最近开发的一款应用在Android 5.0 手机上出现了崩溃现象,log信息如下:
05-14 12:48:36.363 11954 11954 E AndroidRuntime: java.lang.RuntimeException: Unable to start receiver com.yulore.recognize.android.receiver.PhoneStateReceiver: java.lang.IllegalArgumentException: Service Intent must be explicit: Intent { act=com.yulore.recognize.android (has extras) }
05-14 12:48:36.363 11954 11954 E AndroidRuntime: at android.app.ActivityThread.handleReceiver(ActivityThread.java:2587)
05-14 12:48:36.363 11954 11954 E AndroidRuntime: at android.app.ActivityThread.access$1700(ActivityThread.java:147)
05-14 12:48:36.363 11954 11954 E AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1358)
05-14 12:48:36.363 11954 11954 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:102)
05-14 12:48:36.363 11954 11954 E AndroidRuntime: at android.os.Looper.loop(Looper.java:135)
05-14 12:48:36.363 11954 11954 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:5232)
05-14 12:48:36.363 11954 11954 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
05-14 12:48:36.363 11954 11954 E AndroidRuntime: at java.lang.reflect.Method.invoke(Method.java:372)
05-14 12:48:36.363 11954 11954 E AndroidRuntime: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904)
05-14 12:48:36.363 11954 11954 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:699)
05-14 12:48:36.363 11954 11954 E AndroidRuntime: Caused by: java.lang.IllegalArgumentException: Service Intent must be explicit: Intent { act=com.yulore.recognize.android (has extras) }
05-14 12:48:36.363 11954 11954 E AndroidRuntime: at android.app.ContextImpl.validateServiceIntent(ContextImpl.java:1676)
05-14 12:48:36.363 11954 11954 E AndroidRuntime: at android.app.ContextImpl.startServiceCommon(ContextImpl.java:1705)
05-14 12:48:36.363 11954 11954 E AndroidRuntime: at android.app.ContextImpl.startService(ContextImpl.java:1689)
05-14 12:48:36.363 11954 11954 E AndroidRuntime: at android.content.ContextWrapper.startService(ContextWrapper.java:515)
05-14 12:48:36.363 11954 11954 E AndroidRuntime: at com.yulore.recognize.android.receiver.PhoneStateReceiver.startService(PhoneStateReceiver.java:85)
05-14 12:48:36.363 11954 11954 E AndroidRuntime: at com.yulore.recognize.android.receiver.PhoneStateReceiver.onReceive(PhoneStateReceiver.java:53)
05-14 12:48:36.363 11954 11954 E AndroidRuntime: at android.app.ActivityThread.handleReceiver(ActivityThread.java:2580)
05-14 12:48:36.363 11954 11954 E AndroidRuntime: ... 9 more
原因是Android 5.0对Service Intent的调用策略发生改变了,必须通过显示Intent来启动Service,详细介绍可以看stackoverflow上的介绍。
解决办法如下:
1、通过显示意图启动Service(直接用类名);
Intent intent = new Intent(com.yulore.test.AppService.class);context.startService(intent);
2、如果想继续使用隐式意图的话,加上包名信息即可;
Intent intent = new Intent();intent.setAction("com.yulore.recognize.android");intent.setPackage(context.getPackageName());//兼容Android 5.0context.startService(intent);
- java.lang.IllegalArgumentException: Service Intent must be explicit: Intent {
- java.lang.IllegalArgumentException: Service Intent must be explicit
- java.lang.IllegalArgumentException: Service Intent must be explicit
- java.lang.IllegalArgumentException: Service Intent must be explicit解决方法
- java.lang.IllegalArgumentException: Service Intent must be explicit异常说明
- Caused by: java.lang.IllegalArgumentException: Service Intent must be explicit:
- java.lang.IllegalArgumentException: Service Intent must be explicit
- java.lang.IllegalArgumentException: Service Intent must be explicit 异常说明
- java.lang.IllegalArgumentException: Service Intent must be explicit 异常解决
- java.lang.IllegalArgumentException: Service Intent must be explicit解决方法
- java.lang.IllegalArgumentException: Service Intent must be explicit: Intent { act=xxx}
- java.lang.IllegalArgumentException:Service Intent must be explicit:Intent{act=org.opencv.engine.BIND
- Android报错:Caused by: java.lang.IllegalArgumentException: Service Intent must be explicit: Intent
- 解决Android5.0及以上启动Service时,java.lang.IllegalArgumentException: Service Intent must be explicit
- android L java.lang.IllegalArgumentException: Service Intent must be explicit隐式意图找不到错误解决
- 5.0上java.lang.IllegalArgumentException: Service Intent must be explicit异常
- 20_ java.lang.IllegalArgumentException: Service Intent must be explicit异常说明
- Android5.0报错:java.lang.IllegalArgumentException: Service Intent must be explicit
- ubuntu操作遇到问题
- x264源代码简单分析:编码器主干部分-2
- 关于摄像头的一些基础知识
- Android RelativeLayout 15大属性
- Linux进程间通信——信号量
- java.lang.IllegalArgumentException: Service Intent must be explicit
- Oracle EBS订单的流程(Order->AR)
- js面向对象学习笔记之七(函数 与 基础控制结构)
- kafka第三方开源SSL库
- Maven Eclipse生成web工程
- 酒店的三个模板选择方法
- FLEX:module和components用法上的区别
- CListContainerElementUI 表头拖拽不起作用
- TCP/IP 详解7 Ping指令