Android 8.0起動エラーNot allowed to start service Intent{パッケージ名}app is in background uid UidRecord


FATAL EXCEPTION: Thread-13                                                                    Process: com.project.purse, PID: 12962                                                                    java.lang.IllegalStateException: Not allowed to start service Intent { flg=0x20 cmp=com.android.browser/cn.jpush.android.service.DaemonService }: app is in background uid null                                                                        at android.app.ContextImpl.startServiceCommon(ContextImpl.java:1701)                                                                        at android.app.ContextImpl.startService(ContextImpl.java:1657)                                                                        at android.content.ContextWrapper.startService(ContextWrapper.java:644)                                                                        at cn.jpush.android.service.l.run(Unknown Source:108)                                                                        at java.lang.Thread.run(Thread.java:784)
 
 
 
エラーの原因は、Android 8.0がバックグラウンドサービスをstartService方式で直接起動することを許可しなくなったためです.
だからstartForegroundService方式に変更して起動すればいいです.
ただし、コードにstartService方式が使用されていない場合、この起動エラーが発生する場合は、別の原因かもしれません.
オーロラプッシュ、jpush-android-2.1.3.jarバージョンです.
プロジェクトは2年前のプロジェクトなので、現在までメンテナンスされていますが、最近では8.0バージョンの起動エラーが発生しています.しかし、試験機のバージョン6.0では問題なく、検索してみると8.0でstartService方式でサービスを起動できないようですが、私のコードでは使用していません.エラーメッセージを见ると、毎回Jpushでエラーが発生し、オーロラの原因かと思い、オーロラの初期化操作//を落としてしまい、エラーは発生しませんでしたが、オーロラはまだ使います.オーロラバージョンをjpush-android-3.1に更新しました.6.jar
使用時にも間違いはありませんでした.でももう一度調整しなきゃいけないので、面倒くさい!!!
AndroidManifestでxmlファイルでレーザ構成を表示すると、サーバサービスが見つかりました.



    
        

        
    


備考を見て他のオーロラ関連のサービスを引っ張って、あげました.sdkはまだjpush-android-2.1を使っています.3.jar、起動して、間違っていません..