2017-10-18 10 views
0

私はPlayストアにアプリケーションを持っています。これはアンドロイドツールのアップデートと依存関係のアップデートで定期的に更新されますが、それだけです。 コンパイルして最新のAndroidプラットフォームとサポートライブラリで動作させるだけです。致命的な例外:android.app.RemoteServiceException不正な通知がパッケージから投稿されました

私は機能などを追加しません。

は最近、私はメッセージでActivityThread.javaにクラッシュをたくさん受けてきました:

Fatal Exception: android.app.RemoteServiceException 
Bad notification posted from package xxx.xxx.xxx: Couldn't create icon: StatusBarIcon(pkg=gxxx.xxx.xxxsuser=0 id=0x7f03002d level=0 visible=true num=0) 

私のアプリケーションは、私がそう

のように登録され、そのためにインターホンSDKを使用して、通知を受信しません
Intercom.client().setupGCM(token, R.mipmap.notification_icon); 

基本的に私は自分で通知を傍受しません。AsyncTaskを使用してGCMトークンを要求するだけです。それだけです。

これで、プロダクションアプリが通知を受け取るたびに、通知が作成されず、アプリがクラッシュすることがありました。

Android 3.0およびcompileSDK 26ビルド以前は、この問題は発生していませんでした。 通知や通知を処理するコードやIntercom SDKのバージョンは変更されませんでした。

私は自分の電話でデバッグとプロダクションビルドの両方で自分自身で問題を再現できないと言いましたが、通知を受け取ることができます。

しかし、私は多くのように野生のそれらのクラッシュの多くを得た。何千もの通知が同じアプリに送信される場合を除き、可能です。

しかし、それはAndroid 7とサムスンの携帯電話に集中しているようだ。しかし、だけでなく。

私はこの問題を抱えている唯一の人ではないと思いますが、APK世代や私が気づいていないサポートライブラリで変更されたことがあると思います。あなたは手がかりがあれば、それは歓迎されるでしょう。

答えて

1

AS 3.0は新しいgradleバージョンを使用します。私のアプリでは同じ問題があります。それは新しいリソースIDによって引き起こされます。異なったグラデルバージョンによって生成されたR.javaファイルを比較すると、同じリソースが異なるIDを持つことがわかります。私の場合は、DevToDev SDKを使用してプッシュメッセージを受信します。 SDKを初期化し、MainActivityの通知で使用されるリソースを渡します。ユーザーが更新後にアプリケーションを起動しない場合は、通知に使用される元のIDが存在することは明らかです。これは、アプリケーションをクラッシュさせます。私は、まだ私はそれが

<receiver android:name=".AppUpdateBroadcastReceiver" android:exported="true"> 
     <intent-filter> 
      <action android:name="android.intent.action.MY_PACKAGE_REPLACED"/> 
     </intent-filter> 
    </receiver> 

アプリの更新イベントをキャッチすると、そこにあなたのSDKを初期化するためにBroadcastReceiverを使用することです解決するためにあなたを提供できる唯一の方法は私の問題を解決していません。

あなたがこの問題をreplacateしたい場合は、これらの手順を実行しようとすることができます:

  1. 、アプリの古いバージョンをインストールし、それを起動し、通知をインストールした後、適切に
  2. 無効に自動起動を作業していることを確認してください
  3. AS(新Gradleのバージョンで構築された)アプリの新バージョンをインストールし、それ
  4. は、お使いのデバイスに
をテスト通知を送信します起動していないからAPK
関連する問題