我最近开发了一个使用 URL 在线播放广播的 Android 应用程序。它在我在模拟器中测试的 6,7 和 8 的其他 android 版本中运行良好。但上周我发布了该应用程序以播放商店,我的报告显示它在 android 9 手机中崩溃。它继续抛出 java.lang.SecurityException。我已经尝试了我能解决的错误,但我失败了。用户不断报告手机上的多个应用程序崩溃这是来自播放控制台的堆栈跟踪java.lang.RuntimeException: at android.app.ActivityThread.handleServiceArgs (ActivityThread.java:3903) at android.app.ActivityThread.access$1700 (ActivityThread.java:236) at android.app.ActivityThread$H.handleMessage (ActivityThread.java:1815) at android.os.Handler.dispatchMessage (Handler.java:106) at android.os.Looper.loop (Looper.java:214) at android.app.ActivityThread.main (ActivityThread.java:7032) at java.lang.reflect.Method.invoke (Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:494) at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:965)Caused by: java.lang.SecurityException: at android.os.Parcel.createException (Parcel.java:1966) at android.os.Parcel.readException (Parcel.java:1934) at android.os.Parcel.readException (Parcel.java:1884) at android.app.IActivityManager$Stub$Proxy.setServiceForeground (IActivityManager.java:5043) at android.app.Service.startForeground (Service.java:695) at com.premar.radiomunabuddu.RadioMediaPlayerService.play (RadioMediaPlayerService.java:120) at com.premar.radiomunabuddu.RadioMediaPlayerService.onStartCommand (RadioMediaPlayerService.java:50) at android.app.ActivityThread.handleServiceArgs (ActivityThread.java:3884)Caused by: android.os.RemoteException:
2 回答
qq_花开花谢_0
TA贡献1835条经验 获得超7个赞
setServiceForegroundInnerLocked 方法会根据 targetSdkVersion 级别进行检查。缺少 FOREGROUND_SERVICE 权限
代码:
if (r.appInfo.targetSdkVersion >= Build.VERSION_CODES.P) {
mAm.enforcePermission(
android.Manifest.permission.FOREGROUND_SERVICE,
r.app.pid, r.appInfo.uid, "startForeground");
}
添加回答
举报
0/150
提交
取消