我最近開發了一個使用 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
提交
取消