使用adb命令启动service报app is in background uid null解决
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用adb命令启动service报app is in background uid null解决相关的知识,希望对你有一定的参考价值。
参考技术A 在本地调试app中的一个service时,使用adb shell am startservice弹出报错错误信息如下:app is in background uid null,如图:
查了一些帖子发现提供的2018年左右的解决方案为:
Settings->Build,Execution,Deployment->Instant Run
关掉 Enable Instant Run to hot swap code/
尝试失效。
后续找到解决方案:
adb shell am start-foreground-service -n com.demo.screenrecorder/com.demo.screenrecorder.RecordService
使用这个start-foreground-service来替换startservice可以解决这个问题。特此记录。
PS:android O 推出出了Background Execution Limits,减少后台应用内存使用及耗电,一个很明显的应用就是不准后台应用通过startService启动服务。
解决方案就是及时调用startForeground,对于O以后的还要注意Notification需要一个ChannelID
@Override
public void onCreate()
super.onCreate();
try
String CHANNEL_ONE_ID ="com.demo.screenrecorder";
String CHANNEL_ONE_NAME ="Channel One";
NotificationChannel notificationChannel =null;
notificationChannel =new NotificationChannel(CHANNEL_ONE_ID,
CHANNEL_ONE_NAME, NotificationManager.IMPORTANCE_DEFAULT);
NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
assert manager !=null;
manager.createNotificationChannel(notificationChannel);
startForeground(1, new NotificationCompat.Builder(this, CHANNEL_ONE_ID).build());
catch (Exception e)
Log.e(TAG, e.getMessage());
initView();
推荐阅读: Android O 后台startService限制简析
启动VMware出现报错:The VMware Authorization Service is not running
一、问题
第一天我安装了新的虚拟机,关机,第二天重新启动的时候就出现错误了。二、解决办法
1.Ctrl+Alt+Del 点击启动任务管理器
2.点击服务
2.启动所有vm的服务
现在就可以重新启动服务了
以上是关于使用adb命令启动service报app is in background uid null解决的主要内容,如果未能解决你的问题,请参考以下文章
启动VMware出现报错:The VMware Authorization Service is not running
启动VMware出现报错:The VMware Authorization Service is not running