求助安卓开发大佬, App 崩溃,提示启动前台服务失败,问题是我并没有启动前台服务

162 天前
 yafoo

日志如下:

Time: 2025-05-12 23:41:07
Brand: Xiaomi
Model: 2211133C
Android Version: 13 (SDK 33)
Exception: 
Message:Context.startForegroundService() did not then call Service.startForeground(): ServiceRecord{5105f70 u0 com.android.app/.MQTTService}
Stack Trace:
android.app.RemoteServiceException$ForegroundServiceDidNotStartInTimeException: Context.startForegroundService() did not then call Service.startForeground(): ServiceRecord{5105f70 u0 com.android.app/.MQTTService}
at android.app.ActivityThread.generateForegroundServiceDidNotStartInTimeException(ActivityThread.java:2078)	
at android.app.ActivityThread.throwRemoteServiceException(ActivityThread.java:2052)
at android.app.ActivityThread.-$$Nest$mthrowRemoteServiceException(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2314)
at android.os.Handler.dispatchMessage(Handler.java:106)	at android.os.Looper.loopOnce(Looper.java:210)
at android.os.Looper.loop(Looper.java:299)	
at android.app.ActivityThread.main(ActivityThread.java:8240)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:559)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:954)

从日志看,大概意思是启动前台服务失败,问题时,我程序里根本没有启动前台服务,引用的第三方库,也不会启动前台服务。

这个问题,仅在这个用户出现。

而且诡异的是,正常情况下,app 连续崩溃几次,安卓就会禁止自启动,而这个用户的手机,居然可以一直在自启动,启动后后崩溃,然后继续自启动。

有没有安卓开发的大佬,这是属于什么问题?

3574 次点击
所在节点    Android
35 条回复
yafoo
162 天前
@winterbells MQTTService 是我自己写的后台服务
yafoo
162 天前
@debuggeeker APP 目前用户不多,支持安卓版本最低安卓 7 ,最高安卓 15 ,目前都没问题,最高安卓 15 正常运行没问题的。
yafoo
162 天前
@capric 感谢,我验证验证试试
yafoo
162 天前
@Bichat 客户端用的 https://github.com/eclipse-paho/paho.mqtt.java 这个,开源的,他自身不会创建前台 service
yafoo
162 天前
@a1210968738 感谢回复,这个有点高级,我不会操作,留以后再研究吧
yafoo
162 天前
@joywan 好像不是必须的
nightlight9
162 天前
@yafoo #19 14 楼说的靠谱。你把 targetapi 降低到 25 ,就不会报这个错了
joywan
162 天前
@yafoo #26 从 Android8 开始必须
okakuyang
161 天前
安卓早就不是当年那个安卓了,现在必须开启前台服务,并且弹一条通知。
wobuhuicode
161 天前
额,现在的人都不看日志的……这么明显的提示,都不看的
yafoo
161 天前
@okakuyang 我这 App 目前从安卓 7 到安卓 15 ,都有用户在用,我自己也用了 2 年了,没问题。只有这一个用户报这个错
yafoo
161 天前
@wobuhuicode 请大佬指教,这个是什么问题。
App 目前用户不多,不过从安卓 7 到安卓 15 ,都有用户在用,我自己也用了 2 年了,没问题。只有这一个用户报这个错
lemos1235
161 天前
需要启动前台服务。之前遇到过
mtdhllf
152 天前
你没 get 点,现在不允许你启动以前那种悄咪咪后台服务了,启动服务你就得是前台服务(用户消息通知能看到)。要么你就试试 bind service 方式,看不启用前台通知正否正常
yafoo
152 天前
@mtdhllf 感谢回复!你说的这个点我知道。

我现在的问题时,我有 100 个用户,这 100 个用户,从安卓 7 到安卓 15 的用户都有,而且都在正常使用,我自己也用了 2 年了,我手机安卓版本是 14 。

所有用户都是正常的,目前只有这一个用户出现这个问题。我程序启动的是后台服务,如果不能正常运行,应该报后台服务的异常才对,这个用户现在报的错是启动前台服务异常,关键是我没有启动前台服务,咋会报启动前台服务的异常呢?

我想了想,感觉是这个手机 os 本身,启动后台服务时,强制系统级给改为前台服务了,于是就报错了,这只是猜测,所以想问安卓开发的大佬,怎么看这个事

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1131299

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX