安全异常:无法启动服务。用户0受到限制。

8

我遇到了以下异常追踪信息。

  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>

你能发布你的清单文件吗? - sumit singh
清单已发布。同时我在OPPO R7 PLUS上遇到了这个异常。对于用户受限制的错误有什么想法吗? - dev1993
我从Playstore得到了这个异常。@Rajen Raiyarela - dev1993
嗯,@RajenRaiyarela可能是对的。为了获得更多信息,你能提供一下MyApplication.java中onCreate方法的重要部分吗(所谓重要部分指的是与创建用于startService的intent相关的所有内容)? - REJH
我正在MyApplication的onCreate中注册生命周期回调并启动服务。@REJH - dev1993
显示剩余5条评论
1个回答

4
请查看OPPO的帖子: http://bbs.coloros.com/thread-174655-3-1.html 以下是该帖子的一些翻译: 屏幕自动关闭一段时间后,系统将启动电池管理模块,禁止任何应用程序启动。但存在一个错误,它应该强制停止应用程序,而不是抛出异常。
从开发者角度来看,他们提供了一个解决方案: 在启动服务时使用“try catch”。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接