错误:app在后台uid为null

时间:2017-11-09 19:04:23

标签: android intellij-idea

我在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}

     

错误:app处于后台uid null

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

2 个答案:

答案 0 :(得分:10)

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

使用adb开始使用服务,请使用adb shell am start-foreground-service

而不是adb shell am startservice

答案 1 :(得分:2)

奥利奥(26+)需要前台服务

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

重要服务启动后,必须在5秒内调用Service.startForeground()。显而易见的地方是onCreate