安全异常:无法启动服务。用户 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 受到限制的主要内容,如果未能解决你的问题,请参考以下文章

组策略限制添加用户作为服务登录导致ITAtomcat服务无法启动(log on as a service)

Web宝塔面板 安装Mongo 启动服务 创建用户

推送消息无法立即启动服务

本地连接受到限制或者无法连接,改过IP地址后,还是上不去网

Glassfish 服务器无法启动。空指针异常

应用程序无法正常启动(0 c0000006)怎么修复