【问题标题】:Error: app is in background uid null错误:应用处于后台 uid null
【发布时间】:2017-11-09 19:04:22
【问题描述】:

我在 IntelliJ CE 2017.2 上创建了一个新的 Android 项目并获得了this error。我按照答案中的描述添加了 maven 部分。

当我运行使用新项目创建的默认应用程序时,出现错误

执行时出错:am startservice com.test.myapp/com.android.tools.fd.runtime.InstantRunService

启动服务:Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.test.myapp/com.android.tools.fd.runtime.InstantRunService }

错误:应用处于后台 uid 为空

我仍然可以在手机上手动打开该应用程序并且它可以运行,但它不会自动启动并且我收到该错误消息。

【问题讨论】:

    标签: android intellij-idea


    【解决方案1】:

    我在使用 android api 26/27 (Oreo) 时看到了这个错误。在奥利奥有新的background execution limits。 tl;博士你应该在前台运行服务。

    要使用 adb 启动服务,请使用 adb shell am start-foreground-service

    而不是adb shell am startservice

    【讨论】:

    • 你如何在 IntelliJ 中改变它?我只能设置启动标志而不能更改命令!?
    • 作为一种解决方法,您可以禁用即时运行。转到设置 -> 构建、执行、部署 -> 即时运行。取消选中“启用即时运行以在部署时热交换代码/资源更改(默认启用)”
    • @shadanan 这行得通。我不再收到错误消息,并且应用程序会自动启动。如果您将此作为答案发布,我会将其标记为正确的。
    【解决方案2】:

    Oreo (26+) 需要前台服务

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
        context.startForegroundService(intent);
    }
    else {
        context.startService(intent);
    }
    

    重要提示 服务启动后,必须在 5 秒内调用Service.startForeground()。明显的地方在onCreate

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-20
      • 2016-02-24
      • 2017-11-06
      • 2023-02-02
      • 1970-01-01
      相关资源
      最近更新 更多