安全异常:无法启动服务。用户 0 受到限制
Posted
技术标签:
【中文标题】安全异常:无法启动服务。用户 0 受到限制【英文标题】:Security exception: Unable to start service. User 0 is restricted 【发布时间】:2016-12-10 09:49:03 【问题描述】:我有以下异常跟踪。
Fatal Exception: java.lang.RuntimeException: Unable to create application com.myapp.MyApplication: java.lang.SecurityException: Unable to start service Intent cmp=com.myapp/.background.MyService : Unable to launch app com.myapp/10232 for service Intent cmp=com.myapp/.background.MyService : user 0 is restricted
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4688)
at android.app.ActivityThread.access$1600(ActivityThread.java:164)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1438)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:150)
at android.app.ActivityThread.main(ActivityThread.java:5408)
at java.lang.reflect.Method.invoke(Method.java)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:964)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:759)
Caused by java.lang.SecurityException: Unable to start service Intent cmp=com.myapp/.background.MyService : Unable to launch app com.myapp/10232 for service Intent cmp=com.myapp/.background.MyService : user 0 is restricted
at android.app.ContextImpl.startServiceCommon(ContextImpl.java:1728)
at android.app.ContextImpl.startService(ContextImpl.java:1701)
at android.content.ContextWrapper.startService(ContextWrapper.java:516)
at com.myapp.MyApplication.onCreate(MyApplication.java:105)
at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1012)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4685)
at android.app.ActivityThread.access$1600(ActivityThread.java:164)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1438)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:150)
at android.app.ActivityThread.main(ActivityThread.java:5408)
at java.lang.reflect.Method.invoke(Method.java)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:964)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:759)
关于这个例外的任何线索? 看起来,应用程序是从访客用户安装的,并试图在管理员帐户中访问? 我从 OPPO R7 PLUS 设备中得到了这个异常。
清单:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.myapp">
<application
android:name=".MyApplication"
android:allowBackup="false"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme">
<service android:name=".background.MyService" />
</application>
</manifest>
【问题讨论】:
你能发布你的清单文件吗? 已发布清单。我也只在 OPPO R7 PLUS 中得到了这个例外。关于用户的任何想法都是受限错误? 是否管理用户配置文件? 我从 Playstore 得到了这个异常。 @Rajen Raiyarela 嗯@RajenRaiyarela 可能在正确的轨道上。只是为了获得更多信息,您能否提供 MyApplication.java 的 onCreate 方法的重要部分(我的意思是所有与创建用于 startService 的意图有关的东西 :))? 【参考方案1】:请看 OPPO 的帖子: http://bbs.coloros.com/thread-174655-3-1.html
以下是该帖子的一些翻译: 自动熄屏一段时间后,系统会启动电池管理模块,禁止任何应用启动。但是有一个错误,它应该强制停止应用程序而不是抛出异常。
从开发人员方面,他们给出了解决方案: 启动服务时使用“try catch”。
【讨论】:
以上是关于安全异常:无法启动服务。用户 0 受到限制的主要内容,如果未能解决你的问题,请参考以下文章