Onesignal-android-sdk: Bad Notification: Couldn't expand RemoteViews for: StatusBarNotification. on Android Nougat

Created on 12 Jul 2017  路  100Comments  路  Source: OneSignal/OneSignal-Android-SDK

I'm receiving this issue on crashlytics only on Motorola devices with Android Nougat:

Fatal Exception: android.app.RemoteServiceException: Bad notification posted from package br.com.vivadecora.app: Couldn't expand RemoteViews for: StatusBarNotification(pkg=br.com.vivadecora.app user=UserHandle{0} id=1610499692 tag=null key=0|br.com.vivadecora.app|1610499692|null|10093: Notification(pri=0 contentView=null vibrate=null sound=null defaults=0x0 flags=0x218 color=0xffcd3128 groupKey=filter vis=PUBLIC))
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1644)
       at android.os.Handler.dispatchMessage(Handler.java:102)
       at android.os.Looper.loop(Looper.java:154)
       at android.app.ActivityThread.main(ActivityThread.java:6123)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:757)

It works well on all other android versions and manufacturer. I dont have more information besides this log.

Thanks

Medium Priority

Most helpful comment

We are also seeing this exact same issue after every update we release.
Any plans on fixing this? It's really hurting user experience :(

All 100 comments

@jpusp Can you share the OneSignal notification id that matches this crash with OneSignal support? You contact them via the OneSignal dashboard or by emailing [email protected]

I have one more information about this bug: It start to appear in crashlytics every time i release a new version to the Google Play. It appears that onesignal sdk crashes the app only one time, when the user updates the app. Then the app stabilizes

@jkasten2 I am also facing the same issue. And its behavior is same as mentioned by @jpusp that it crashes after few day of app updates then get stable.

@anukools Are you only seeing the issue on Android 7 Motorola devices as well?

@anukools @jpusp
Do you have any test devices where you have reproduced this issue? We haven't been able to reproduce it.

I'm seeing this issue facing on few samsung devices too (samsung a5) with Android 7.
I didn't find a way to reproduce this bug. It appears when the user updates the app.

The issue seems to be related to the notifications being restored to the notification area when the app is updated from what you have noted and the crash logs.

Can you try the following to attempt to reproduce the issue.

  1. Send a notification to the device.
  2. run adb install -r your_app_name.apk. - This should simulate an update
  3. Repeat - Specific types of notifications or a number of them maybe required to reproduce the issue.

@jpusp were you able to find a solution for this? I'm experiencing the same issue on the same devices

We are having the same issue. Anyone on it?

@LDALEGRIA We haven't been able to reproduce this issue and the stack trace is showing the Android framework classes part of the Android OS itself. This make it difficult to know what is the root cause of the issue or if any attempted changes will have any effect.

Do you have any crash reports from any other version other than Android 7.0? Are you able to produce the crash on any of your test devices?

@jkasten2

Attached you have my crash logs.
It's only happening to Android 7.0 and I have not been able to reproduce it.

br.com.evino.android_issue_160_crash_.txt
http://crashes.to/s/a4e6ad455c5

image

Thanks for the details, the issue seem isolated to just 7.0. We haven't seen any 7.1 reports but it's market share is 10x less than 7.0 as well. We will focus more testing on 7.0 to try to reproduce this issue.

Also what version of the com.android.support library does your project use? This is used by OneSignal to generate the notification so this can be a factor as well.

@jkasten2 Thanks for checking.
We are using com.android.support library 24.2.1

Hopefully we can resolve this issue. Count on our help if needed.

@PeteSesto I didnt find any solution for this.

@jkasten2 Yes, its happening on Android 7.0 only. My support library changed from 25.3.0, 25.4.0, 26.0.1 and 26.0.2 across the time. Nothing changes.

@LDALEGRIA Its almost the same crashlytics log that i have here. The difference is that some samsung devices is on the list (a few)

Motorola crashes
http://crashes.to/s/83a5dbe2cc5

Samsung crashes
http://crashes.to/s/aa15d2d48ce

It seems like it's not only happening on 7.0 I have the same happening here on this device :
Android: 5.1
Android Build: TIT-U02C328B106
Manufacturer: HUAWEI
Model: HUAWEI TIT-U02

android.app.RemoteServiceException: Bad notification posted from package com.anghami: Couldn't expand RemoteViews for: StatusBarNotification(pkg=com.anghami user=UserHandle{0} id=佟贍佟 tag=null score=贍 key=0|com.anghami|101|null|10105: Notification(pri=0 contentView=com.anghami/0x109007e vibrate=null sound=null defaults=0x0 flags=0x62 color=0xff92278f category=transport actions=5 vis=PRIVATE))
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1653)
    at android.os.Handler.dispatchMessage(Handler.java:111)
    at android.os.Looper.loop(Looper.java:194)
    at android.app.ActivityThread.main(ActivityThread.java:5668)
    at java.lang.reflect.Method.invoke(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:372)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:963)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:758)`

I'm using the support Lib : :26.0.2 and here's my code (note that all the Icons I'm using are SVGs) :

NotificationCompat.Builder builder = new NotificationCompat.Builder(this, CHANNEL_ID)
        .setSmallIcon(R.drawable.ic_notification)
        .setContentTitle(finalTitle)
        .setContentIntent(getMainPendingIntent())
        .setDeleteIntent(closePendingIntent)
        .setLargeIcon(bitmap)
        .setStyle(new android.support.v4.media.app.NotificationCompat.MediaStyle()
            .setMediaSession(new MediaSessionCompat(this, CHANNEL_ID).getSessionToken()).setShowActionsInCompactView(1, 2, 3))
        .setContentText(subtitle)
        .addAction(isLiked ? R.drawable.ic_like_filled_purple_26dp : R.drawable.ic_like_outline_purple_26dp, getString(isLiked?R.string.like:R.string.unlike), getPendingIntent(PlayerActions.ACTION_LIKE))
        .addAction(R.drawable.ic_previous_purple_18dp, getString(R.string.rewind), getPendingIntent(PlayerActions.ACTION_PREV))
        .addAction(playPauseRes, playPauseString, getPendingIntent(PlayerActions.ACTION_PLAY_PAUSE))
        .addAction(R.drawable.ic_next_purple_18dp, getString(R.string.next), getPendingIntent(PlayerActions.ACTION_NEXT))
        .addAction(R.drawable.ic_radio_filled_26dp, getString(R.string.radio), getPendingIntent(PlayerActions.ACTION_CURRENT_SONG_RADIO));
    builder.setColor(ContextCompat.getColor(this,R.color.purple));
    showNotification(builder.build());

@jpusp @LDALEGRIA Considering that the issue seems to happen on app updates, do you recall if your updated APK added/removed any resources (drawable or otherwise)?

We're considering the case where aapt has compiled a different set of resource IDs due to the resources being changed and there may be a corner-case condition where a resource ID becomes invalid after the apk is updated.

@Alamgir Yes, I have modifications in drawables, strings, layouts, selectors in ever app update. I think you are right: if you are holding reference to a resource id (saving on file or db) then you will get wrong references after resources changed, like this question on SOF:

https://stackoverflow.com/questions/6677804/android-drawable-id-change-after-resources-modify

The answer for him was to save the reference name, not the resource id

@Alamgir yes has a lot of resources changes, but what the relation with push notification?
Because the only resource that relation with oneSingal is the icon image for notification :S

@ifucolo I think they have their own custom views as remote views for push notification expandable view. Changes on my resources influences the generated resource ids classes for all resources, including 3rd party libraries

We are having the same issue. Anyone on it?

When are you planning to public 3.6.4 release?

@DimaKoz 3.6.4 should be available shortly

The 3.6.4 SDK as been released. Let us know if this solves the occurrences when you send out the next update to your app. If not, please attach the updated crash report / stack traces.

@jkasten2 I see the same exceptions:

Fatal Exception: android.app.RemoteServiceException: Bad notification posted from package my.package: 
Couldn't expand RemoteViews for: 
StatusBarNotification(pkg=my.package user=UserHandle{0} id=-278540490 tag=null key=0|my.package|-278540490|null|10223: 
Notification(pri=0 contentView=null vibrate=null sound=null defaults=0x0 flags=0x19 color=0xff56a0d3 vis=PUBLIC semFlags=0x0 semPriority=0))
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1813)
       at android.os.Handler.dispatchMessage(Handler.java:102)
       at android.os.Looper.loop(Looper.java:154)
       at android.app.ActivityThread.main(ActivityThread.java:6776)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1496)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1386)

I reported the issue to Google: https://issuetracker.google.com/issues/67397632. They requested additional info, alas, I can't provide it, because I failed to reproduce this issue on my own device, I just see crash reports from users :(

I'm having the same issue, however I don't use the OneSignal SDK. The app has a persistent notification that allows user input, and actions (that recreated the notification). Any of you have something in common? I was unable to reproduce it even once, I try to pinpoint the origin of this issue

I posted the issue on SO

Hello,
I'm Using 3.6.4 and I'm still having the same but in big quantities,

image

`

Fatal Exception: android.app.RemoteServiceExceptionBad notification posted from package my.package: Couldn't expand RemoteViews for: StatusBarNotification(pkg=my.package=UserHandle{0} id=990177583 tag=null key=0\|my.package\|990177583\|null\|10135: Notification(pri=-1 contentView=null vibrate=null sound=null defaults=0x0 flags=0x18 color=0x00000000 vis=PUBLIC))聽Raw Text

聽 | android.app.ActivityThread$H.handleMessage聽(ActivityThread.java:1644)
聽 | android.os.Handler.dispatchMessage聽(Handler.java:102)
聽 | android.os.Looper.loop聽(Looper.java:154)
聽 | android.app.ActivityThread.main聽(ActivityThread.java:6123)
聽 | java.lang.reflect.Method.invoke聽(Method.java)
聽 | com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run聽(ZygoteInit.java:867)
聽 | com.android.internal.os.ZygoteInit.main聽(ZygoteInit.java:757)

`

It seems that Android 7.0 devices are having this issue, mostly Motorola, I'm not able to reproduce this issue.

I see it on 4.4.2 as well
http://crashes.to/s/bdfac9826ca
Fatal Exception: android.app.RemoteServiceException: Bad notification posted from package unioapp.com.unio: Couldn't expand RemoteViews for: StatusBarNotification(pkg=unioapp.com.unio user=UserHandle{0} id=18 tag=null score=0: Notification(pri=0 contentView=unioapp.com.unio/0x1090064 vibrate=[1000,1000,1000,1000,1000] sound=content://settings/system/notification_sound defaults=0x0 flags=0x11 kind=[null]))
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1509)
at android.os.Handler.dispatchMessage(Handler.java:110)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:5333)
at java.lang.reflect.Method.invokeNative(Method.java)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:829)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:645)
at dalvik.system.NativeStart.main(NativeStart.java)

@jkasten2 We also experience this crash on Google Play dashboard, though we weren't able to reproduce it on our side. For us, it seems that it mostly happens on 7.x devices, although there is a small percentage of crashes happening on 6.0 also. I'll attach a screenshot of the crash logs. Please let us know is this issue is being handled or if you need any other information from us(we will post updates if and when we manage to reproduce the crash). Thank you very much!

screen shot 2017-11-08 at 14 05 45

@jkasten2 I confirm, we get the same kind of error, mostly in 7. devices. Is there a plan for a fix soon?

@dilah We added a delay to when notifications are restored after the app is updated in the 3.6.4 version of our SDK. This did not seem to fix the issue so we need to investigate further on reproducing and finding the root cause of this issue.

Experiencing the exact same crash, we have over 100 devices affected daily. A fix for this one would be greatly appreciated.

We are also seeing this exact same issue after every update we release.
Any plans on fixing this? It's really hurting user experience :(

Similar to the problem with our some users when updating. Many crashes.

Issue

Summary

From the reports so far the Couldn't expand RemoteViews is being thrown after the app updates on the device for some devices for some users. This happens at the point where notifications are being re-displaying after the app update either by the OneSignal SDK or by the developer adding their own code to do so. Since the stack trace contains no application level classes it is not possible to confirm if the at fault notification is OneSignal or code in the application triggering the exception. It seems this issue only happens in the wild, none have been able to reproduce this issue on their own devices in testing yet.

Details

Using invalid resources are one way to get a Bad notification posted from package error. However OneSignal confirms each resource is valid before adding it to the notification. No cached id values are used, validation is done just before adding them to the NotificationCompat.Builder.

Since the crash doesn't seem to be happening when the notification is originally received but then later is when the app is updated it would seem the issue would be related to a resource id changing or being removed in the update. Even in the re-displaying process after the update OneSignal checks to ensure the resources are still valid. The theory we had was that the SDK was restoring notification before Android had time to update any indexing it might be using for resources. The broadcast android.intent.action.MY_PACKAGE_REPLACED is what OneSignal uses to kick off the notification re-display process. We tried to add a 20 second delay to the OneSignal 3.6.4 update to fix this however it did not seem to have an effect noted by the reports above.


Source

After digging into the Android source I've found where the Couldn't expand RemoteViews exception is being thrown, BaseStatusBar.java.

The error only fires if inflateViews fails, however this isn't too helpful as inflating a view is most of the notification generation work.

The reason why inflateViews error seems to be happening more on Android 7+ than other versions of Android is the fact that Notification.Builder.build skips this step on the main app process. If inflation was done on the Notification.Builder.build step then we would see app / SDK specific classes in the stacktrace instead of just the Android internal classes. I haven't looked at the source before Android 7 so I am unsure why the rarer inflation error is happening on older versions of Android.

Note: The stacktrace from your app does not point to BaseStatusBar.java as there is an IPC connection to your app to this Android system process.

Debug

To debug this issue however we can inflate the views in the app process before it gets passed off to the Android system process. This way we get a more detailed stack trace instead of being a general inflate error. I'll add a reply once a build is ready to test with.

Reproducing

The following steps should simulate an update however we were not able to reproduce this crash.

  1. Install an older version of your app one version behind.
  2. Send a few notifications to your device and leave them in the notification shade.
  3. Start logcat
  4. Update your app with adb install or through upgrade in the Play Store.

I have a build available that can be released into your production app which will provide a better stacktrace.

// Add snapshots repo if you don't have it already
repositories {
    maven { url "https://oss.sonatype.org/content/repositories/snapshots" }
}

dependencies {
   compile 'com.onesignal:OneSignal:4.0.0-20171206.043726-5'
}

Please attach the fullstack trace of any stacktraces that contain OneSignal. If this update does not have any effect and you still seeing the original stack traces then the issue is most likely not related to the OneSignal SDK.

Code changes themselves on are the debug_inflate_notification_views branch.

Our users are complaining about this too. Any timeline on a fix?

@christian-tenzo My post above from Dec 1st is a detailed report of the issue. In summary, we are in the researching phase of this issue. It isn't reproducible in our testing or from the reports of others on their test devices. If you can try following the Reproducing section above it might reproduce the issue on your test device which would greatly help find the root of the issue. Another option is to use our branched build above in your production app which should provide a better stack trace you can share to pin point the issue.

@NeverMorer Were you able to reproduce the issue on your device? If so can you share the full logcat from your device?

@NeverMorer - the React Native OneSignal doesn鈥檛 actually have the snippet of code that you removed. This is still an issue for us.

@NeverMorer Our app was configured with OneSignal.OSInFocusDisplayOption.None when the crashes appeared.
@jkasten2 What is the default value for OSInFocusDisplayOption? Would it make any sense for us to remove that line if we currently initialize with None?

@BobyIlea @christian-tenzo @NeverMorer This setting shouldn't have an effect on this crash. It only stops notifications from being displayed when the app is in focus. The reports seems to indicate that the crash is happening after the app is updated.

@BobyIlea The default OSInFocusDisplayOption value is InAppAlert.

Hi, I have a same issue.

Device: Samsung Galaxy S8

OS Version: 7.0

Logcat:

Fatal Exception: android.app.RemoteServiceException: Bad notification posted from package my.package: Couldn't expand RemoteViews for: StatusBarNotification(pkg=my.package user=UserHandle{0} id=-1873169804 tag=null key=0|my.package|-1873169804|null|10286: Notification(pri=0 contentView=null vibrate=null sound=null defaults=0x0 flags=0x219 color=0xff7e57c2 groupKey=profile/1615 vis=PUBLIC semFlags=0x0 semPriority=0))
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1813)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6776)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1520)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1410)

My Application Class:

OneSignal.startInit(mContext)
.inFocusDisplaying(OneSignal.OSInFocusDisplayOption.Notification)
.setNotificationOpenedHandler(new NotificationOpenedHandler(mContext))
.init();

Have any solution for this issue ?

@greywolfhalil Can you try to reproducing the issue on your test devices by following the Reproducing section in my comment above?

You can also try switching your production app to this specific SNAPSHOT build listed above which will give us a better stack trace.

@jkasten2 Unfortunately, its not my own device. Device is customers device.

Exact same issue after every update. It's really hurting user experience.
@jkasten2 full crash report from crashlytics.
I think this will help you to fix?

Platform: android
Date: 2017-12-30T08:09:21Z
OS Version: 7.0
Device: SM-G570F
RAM Free: 14.6%
Disk Free: 10.8%

Fatal Exception: android.app.RemoteServiceException: Bad notification posted from package com.example.android: Couldn't expand RemoteViews for: StatusBarNotification(pkg=com.example.android user=UserHandle{0} id=1567918467 tag=null key=0|com.example.android|1567918467|null|10166: Notification(pri=-1 contentView=null vibrate=null sound=null defaults=0x0 flags=0x218 color=0xffd30f47 groupKey=g29122017 vis=PUBLIC semFlags=0x0 semPriority=0))
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1813)
       at android.os.Handler.dispatchMessage(Handler.java:102)
       at android.os.Looper.loop(Looper.java:154)
       at android.app.ActivityThread.main(ActivityThread.java:6776)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1518)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1408)

Stacktrace of all threads

#0. Crashed: main: 0 0 0x0000000000000000
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1813)
       at android.os.Handler.dispatchMessage(Handler.java:102)
       at android.os.Looper.loop(Looper.java:154)
       at android.app.ActivityThread.main(ActivityThread.java:6776)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1518)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1408)

#1. ONESIGNAL_EXECUTOR_9147
       at java.lang.Object.wait(Object.java)
       at java.lang.Thread.parkFor$(Thread.java:2128)
       at sun.misc.Unsafe.park(Unsafe.java:325)
       at java.util.concurrent.locks.LockSupport.park(LockSupport.java:161)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2035)
       at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1091)
       at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1084)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1058)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1118)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
       at java.lang.Thread.run(Thread.java:762)

#2. AsyncTask #3
       at java.lang.Object.wait(Object.java)
       at java.lang.Thread.parkFor$(Thread.java:2128)
       at sun.misc.Unsafe.park(Unsafe.java:325)
       at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:201)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2077)
       at java.util.concurrent.LinkedBlockingQueue.poll(LinkedBlockingQueue.java:438)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1057)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1118)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
       at java.lang.Thread.run(Thread.java:762)

#3. Queue
       at java.lang.Object.wait(Object.java)
       at java.lang.Thread.parkFor$(Thread.java:2128)
       at sun.misc.Unsafe.park(Unsafe.java:325)
       at java.util.concurrent.locks.LockSupport.park(LockSupport.java:161)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2035)
       at java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:519)
       at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.performOperation(DependencyPriorityBlockingQueue.java:197)
       at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.get(DependencyPriorityBlockingQueue.java:236)
       at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(DependencyPriorityBlockingQueue.java:65)
       at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(DependencyPriorityBlockingQueue.java:46)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1058)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1118)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
       at java.lang.Thread.run(Thread.java:762)

#4. Queue
       at java.lang.Object.wait(Object.java)
       at java.lang.Thread.parkFor$(Thread.java:2128)
       at sun.misc.Unsafe.park(Unsafe.java:325)
       at java.util.concurrent.locks.LockSupport.park(LockSupport.java:161)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2035)
       at java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:519)
       at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.performOperation(DependencyPriorityBlockingQueue.java:197)
       at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.get(DependencyPriorityBlockingQueue.java:236)
       at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(DependencyPriorityBlockingQueue.java:65)
       at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(DependencyPriorityBlockingQueue.java:46)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1058)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1118)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
       at java.lang.Thread.run(Thread.java:762)

#5. RxIoScheduler-1 (Evictor)
       at java.lang.Object.wait(Object.java)
       at java.lang.Thread.parkFor$(Thread.java:2128)
       at sun.misc.Unsafe.park(Unsafe.java:325)
       at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:201)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2077)
       at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1103)
       at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1084)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1058)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1118)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
       at java.lang.Thread.run(Thread.java:762)

#6. Crashlytics Exception Handler1
       at dalvik.system.VMStack.getThreadStackTrace(VMStack.java)
       at java.lang.Thread.getStackTrace(Thread.java:1567)
       at java.lang.Thread.getAllStackTraces(Thread.java:1617)
       at com.crashlytics.android.core.CrashlyticsController.writeSessionEvent(CrashlyticsController.java:1261)
       at com.crashlytics.android.core.CrashlyticsController.writeFatal(CrashlyticsController.java:885)
       at com.crashlytics.android.core.CrashlyticsController.access$400(CrashlyticsController.java:66)
       at com.crashlytics.android.core.CrashlyticsController$7.call(CrashlyticsController.java:318)
       at com.crashlytics.android.core.CrashlyticsController$7.call(CrashlyticsController.java:311)
       at java.util.concurrent.FutureTask.run(FutureTask.java:237)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
       at io.fabric.sdk.android.services.common.ExecutorUtils$1$1.onRun(ExecutorUtils.java:75)
       at io.fabric.sdk.android.services.common.BackgroundPriorityRunnable.run(BackgroundPriorityRunnable.java:30)
       at java.lang.Thread.run(Thread.java:762)

#7. AsyncTask #2
       at com.android.org.conscrypt.NativeCrypto.SSL_read(NativeCrypto.java)
       at com.android.org.conscrypt.OpenSSLSocketImpl$SSLInputStream.read(OpenSSLSocketImpl.java:789)
       at com.android.okhttp.okio.Okio$2.read(Okio.java:141)
       at com.android.okhttp.okio.AsyncTimeout$2.read(AsyncTimeout.java:211)
       at com.android.okhttp.okio.RealBufferedSource.read(RealBufferedSource.java:60)
       at com.android.okhttp.internal.http.HttpConnection$FixedLengthSource.read(HttpConnection.java:466)
       at com.android.okhttp.okio.RealBufferedSource$1.read(RealBufferedSource.java:396)
       at android.graphics.BitmapFactory.nativeDecodeStream(BitmapFactory.java)
       at android.graphics.BitmapFactory.decodeStreamInternal(BitmapFactory.java:726)
       at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:702)
       at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:740)
       at com.onesignal.GenerateNotification.getBitmapFromURL(GenerateNotification.java:839)
       at com.onesignal.GenerateNotification.getBitmap(GenerateNotification.java:853)
       at com.onesignal.GenerateNotification.getBaseOneSignalNotificationBuilder(GenerateNotification.java:279)
       at com.onesignal.GenerateNotification.createSummaryNotification(GenerateNotification.java:566)
       at com.onesignal.GenerateNotification.showNotification(GenerateNotification.java:351)
       at com.onesignal.GenerateNotification.fromJsonPayload(GenerateNotification.java:106)
       at com.onesignal.NotificationBundleProcessor.ProcessJobForDisplay(NotificationBundleProcessor.java:101)
       at com.onesignal.NotificationExtenderService.processJsonObject(NotificationExtenderService.java:203)
       at com.onesignal.NotificationExtenderService.processIntent(NotificationExtenderService.java:155)
       at com.onesignal.NotificationExtenderService.onHandleWork(NotificationExtenderService.java:123)
       at com.onesignal.JobIntentService$CommandProcessor.doInBackground(JobIntentService.java:386)
       at com.onesignal.JobIntentService$CommandProcessor.doInBackground(JobIntentService.java:377)
       at android.os.AsyncTask$2.call(AsyncTask.java:304)
       at java.util.concurrent.FutureTask.run(FutureTask.java:237)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
       at java.lang.Thread.run(Thread.java:762)

#8. pool-4-thread-1
       at java.lang.Object.wait(Object.java)
       at java.lang.Thread.parkFor$(Thread.java:2128)
       at sun.misc.Unsafe.park(Unsafe.java:325)
       at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:201)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2077)
       at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1103)
       at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1084)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1058)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1118)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
       at java.lang.Thread.run(Thread.java:762)

#9. Queue
       at java.lang.Object.wait(Object.java)
       at java.lang.Thread.parkFor$(Thread.java:2128)
       at sun.misc.Unsafe.park(Unsafe.java:325)
       at java.util.concurrent.locks.LockSupport.park(LockSupport.java:161)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2035)
       at java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:519)
       at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.performOperation(DependencyPriorityBlockingQueue.java:197)
       at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.get(DependencyPriorityBlockingQueue.java:236)
       at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(DependencyPriorityBlockingQueue.java:65)
       at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(DependencyPriorityBlockingQueue.java:46)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1058)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1118)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
       at java.lang.Thread.run(Thread.java:762)

#10. ONESIGNAL_EXECUTOR_9154
       at java.lang.Object.wait(Object.java)
       at java.lang.Thread.parkFor$(Thread.java:2128)
       at sun.misc.Unsafe.park(Unsafe.java:325)
       at java.util.concurrent.locks.LockSupport.park(LockSupport.java:161)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2035)
       at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1091)
       at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1084)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1058)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1118)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
       at java.lang.Thread.run(Thread.java:762)

#11. pool-1-thread-1
       at java.lang.Object.wait(Object.java)
       at java.lang.Thread.parkFor$(Thread.java:2128)
       at sun.misc.Unsafe.park(Unsafe.java:325)
       at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:201)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2077)
       at java.util.concurrent.LinkedBlockingQueue.poll(LinkedBlockingQueue.java:438)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1057)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1118)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
       at java.lang.Thread.run(Thread.java:762)

#12. pool-3-thread-1
       at java.lang.Object.wait(Object.java)
       at java.lang.Thread.parkFor$(Thread.java:2128)
       at sun.misc.Unsafe.park(Unsafe.java:325)
       at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:201)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2077)
       at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1103)
       at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1084)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1058)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1118)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
       at java.lang.Thread.run(Thread.java:762)

#13. ConnectivityManager
       at android.os.MessageQueue.nativePollOnce(MessageQueue.java)
       at android.os.MessageQueue.next(MessageQueue.java:323)
       at android.os.Looper.loop(Looper.java:136)
       at android.os.HandlerThread.run(HandlerThread.java:61)

#14. Queue
       at java.lang.Object.wait(Object.java)
       at java.lang.Thread.parkFor$(Thread.java:2128)
       at sun.misc.Unsafe.park(Unsafe.java:325)
       at java.util.concurrent.locks.LockSupport.park(LockSupport.java:161)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2035)
       at java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:519)
       at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.performOperation(DependencyPriorityBlockingQueue.java:197)
       at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.get(DependencyPriorityBlockingQueue.java:236)
       at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(DependencyPriorityBlockingQueue.java:65)
       at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(DependencyPriorityBlockingQueue.java:46)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1058)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1118)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
       at java.lang.Thread.run(Thread.java:762)

#15. pool-13-thread-1
       at java.lang.Object.wait(Object.java)
       at java.lang.Thread.parkFor$(Thread.java:2128)
       at sun.misc.Unsafe.park(Unsafe.java:325)
       at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:201)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2077)
       at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1103)
       at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1084)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1058)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1118)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
       at java.lang.Thread.run(Thread.java:762)

#16. FinalizerWatchdogDaemon
       at java.lang.Thread.sleep(Thread.java)
       at java.lang.Thread.sleep(Thread.java:371)
       at java.lang.Thread.sleep(Thread.java:313)
       at java.lang.Daemons$FinalizerWatchdogDaemon.sleepFor(Daemons.java:314)
       at java.lang.Daemons$FinalizerWatchdogDaemon.waitForFinalization(Daemons.java:336)
       at java.lang.Daemons$FinalizerWatchdogDaemon.run(Daemons.java:253)
       at java.lang.Thread.run(Thread.java:762)

#17. ONESIGNAL_EXECUTOR_9148
       at java.lang.Object.wait(Object.java)
       at java.lang.Thread.parkFor$(Thread.java:2128)
       at sun.misc.Unsafe.park(Unsafe.java:325)
       at java.util.concurrent.locks.LockSupport.park(LockSupport.java:161)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2035)
       at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1091)
       at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1084)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1058)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1118)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
       at java.lang.Thread.run(Thread.java:762)

#18. Queue
       at java.lang.Object.wait(Object.java)
       at java.lang.Thread.parkFor$(Thread.java:2128)
       at sun.misc.Unsafe.park(Unsafe.java:325)
       at java.util.concurrent.locks.LockSupport.park(LockSupport.java:161)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2035)
       at java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:519)
       at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.performOperation(DependencyPriorityBlockingQueue.java:197)
       at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.get(DependencyPriorityBlockingQueue.java:236)
       at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(DependencyPriorityBlockingQueue.java:65)
       at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(DependencyPriorityBlockingQueue.java:46)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1058)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1118)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
       at java.lang.Thread.run(Thread.java:762)

#19. OkHttp ConnectionPool
       at java.lang.Object.wait(Object.java)
       at okhttp3.ConnectionPool$1.run(ConnectionPool.java:67)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
       at java.lang.Thread.run(Thread.java:762)

#20. ONESIGNAL_EXECUTOR_9108
       at java.lang.Object.wait(Object.java)
       at java.lang.Thread.parkFor$(Thread.java:2128)
       at sun.misc.Unsafe.park(Unsafe.java:325)
       at java.util.concurrent.locks.LockSupport.park(LockSupport.java:161)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2035)
       at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1091)
       at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1084)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1058)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1118)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
       at java.lang.Thread.run(Thread.java:762)

#21. Answers Events Handler1
       at java.lang.Object.wait(Object.java)
       at java.lang.Thread.parkFor$(Thread.java:2128)
       at sun.misc.Unsafe.park(Unsafe.java:325)
       at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:201)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2077)
       at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1103)
       at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1084)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1058)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1118)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
       at io.fabric.sdk.android.services.common.ExecutorUtils$1$1.onRun(ExecutorUtils.java:75)
       at io.fabric.sdk.android.services.common.BackgroundPriorityRunnable.run(BackgroundPriorityRunnable.java:30)
       at java.lang.Thread.run(Thread.java:762)

#22. RxCachedWorkerPoolEvictor-1
       at java.lang.Object.wait(Object.java)
       at java.lang.Thread.parkFor$(Thread.java:2128)
       at sun.misc.Unsafe.park(Unsafe.java:325)
       at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:201)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2077)
       at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1103)
       at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1084)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1058)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1118)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
       at java.lang.Thread.run(Thread.java:762)

#23. RxNewThreadScheduler-1
       at java.lang.Thread.sleep(Thread.java)
       at java.lang.Thread.sleep(Thread.java:371)
       at java.lang.Thread.sleep(Thread.java:313)
       at com.instabug.survey.a.a(SurveysManager.java:115)
       at com.instabug.survey.network.a$1.a(SurveysFetcher.java:33)
       at com.instabug.survey.network.a$1.onSucceeded(SurveysFetcher.java:28)
       at com.instabug.survey.network.service.a$1.a(SurveysService.java:73)
       at com.instabug.survey.network.service.a$1.onNext(SurveysService.java:50)
       at rx.observers.SafeSubscriber.onNext(SafeSubscriber.java:134)
       at rx.internal.operators.OperatorSubscribeOn$1$1.onNext(OperatorSubscribeOn.java:53)
       at com.instabug.library.network.NetworkManager$1.a(NetworkManager.java:88)
       at com.instabug.library.network.NetworkManager$1.call(NetworkManager.java:59)
       at rx.Observable.unsafeSubscribe(Observable.java:10150)
       at rx.internal.operators.OperatorSubscribeOn$1.call(OperatorSubscribeOn.java:94)
       at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:55)
       at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:428)
       at java.util.concurrent.FutureTask.run(FutureTask.java:237)
       at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:272)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
       at java.lang.Thread.run(Thread.java:762)

#24. pool-5-thread-1
       at java.lang.Object.wait(Object.java)
       at java.lang.Thread.parkFor$(Thread.java:2128)
       at sun.misc.Unsafe.park(Unsafe.java:325)
       at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:201)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2077)
       at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1103)
       at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1084)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1058)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1118)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
       at java.lang.Thread.run(Thread.java:762)

#25. ONESIGNAL_EXECUTOR_9155
       at java.lang.Object.wait(Object.java)
       at java.lang.Thread.parkFor$(Thread.java:2128)
       at sun.misc.Unsafe.park(Unsafe.java:325)
       at java.util.concurrent.locks.LockSupport.park(LockSupport.java:161)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2035)
       at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1091)
       at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1084)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1058)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1118)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
       at java.lang.Thread.run(Thread.java:762)

#26. ReferenceQueueDaemon
       at java.lang.Object.wait(Object.java)
       at java.lang.Daemons$ReferenceQueueDaemon.run(Daemons.java:150)
       at java.lang.Thread.run(Thread.java:762)

#27. OS_HTTPConnection
       at com.android.org.conscrypt.NativeCrypto.SSL_read(NativeCrypto.java)
       at com.android.org.conscrypt.OpenSSLSocketImpl$SSLInputStream.read(OpenSSLSocketImpl.java:789)
       at com.android.okhttp.okio.Okio$2.read(Okio.java:141)
       at com.android.okhttp.okio.AsyncTimeout$2.read(AsyncTimeout.java:211)
       at com.android.okhttp.okio.RealBufferedSource.indexOf(RealBufferedSource.java:316)
       at com.android.okhttp.okio.RealBufferedSource.indexOf(RealBufferedSource.java:310)
       at com.android.okhttp.okio.RealBufferedSource.readUtf8LineStrict(RealBufferedSource.java:206)
       at com.android.okhttp.internal.http.HttpConnection.readResponse(HttpConnection.java:239)
       at com.android.okhttp.internal.http.HttpTransport.readResponseHeaders(HttpTransport.java:104)
       at com.android.okhttp.internal.http.HttpEngine.readNetworkResponse(HttpEngine.java:1156)
       at com.android.okhttp.internal.http.HttpEngine.readResponse(HttpEngine.java:976)
       at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:509)
       at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:438)
       at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponseCode(HttpURLConnectionImpl.java:567)
       at com.android.okhttp.internal.huc.DelegatingHttpsURLConnection.getResponseCode(DelegatingHttpsURLConnection.java:105)
       at com.android.okhttp.internal.huc.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java)
       at com.onesignal.OneSignalRestClient.startHTTPConnection(OneSignalRestClient.java:146)
       at com.onesignal.OneSignalRestClient.access$100(OneSignalRestClient.java:38)
       at com.onesignal.OneSignalRestClient$4.run(OneSignalRestClient.java:94)
       at java.lang.Thread.run(Thread.java:762)

#28. Measurement Worker
       at java.lang.Object.wait(Object.java)
       at java.lang.Object.wait(Object.java:407)
       at com.google.android.gms.internal.zzcil.run(Unknown Source)

#29. ONESIGNAL_EXECUTOR_9136
       at java.lang.Object.wait(Object.java)
       at java.lang.Thread.parkFor$(Thread.java:2128)
       at sun.misc.Unsafe.park(Unsafe.java:325)
       at java.util.concurrent.locks.LockSupport.park(LockSupport.java:161)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2035)
       at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1091)
       at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1084)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1058)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1118)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
       at java.lang.Thread.run(Thread.java:762)

#30. OkHttp WebSocket https://client.relay.crisp.chat/...
       at java.lang.Object.wait(Object.java)
       at java.lang.Thread.parkFor$(Thread.java:2128)
       at sun.misc.Unsafe.park(Unsafe.java:325)
       at java.util.concurrent.locks.LockSupport.park(LockSupport.java:161)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2035)
       at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1091)
       at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1084)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1058)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1118)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
       at java.lang.Thread.run(Thread.java:762)

#31. process reaper
       at java.lang.Object.wait(Object.java)
       at java.lang.Thread.parkFor$(Thread.java:2128)
       at sun.misc.Unsafe.park(Unsafe.java:325)
       at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:201)
       at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:432)
       at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:333)
       at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:908)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1057)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1118)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
       at java.lang.Thread.run(Thread.java:762)

#32. pool-8-thread-1
       at java.lang.Object.wait(Object.java)
       at java.lang.Thread.parkFor$(Thread.java:2128)
       at sun.misc.Unsafe.park(Unsafe.java:325)
       at java.util.concurrent.locks.LockSupport.park(LockSupport.java:161)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2035)
       at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:413)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1058)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1118)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
       at java.lang.Thread.run(Thread.java:762)

#33. ONESIGNAL_EXECUTOR_9096
       at java.lang.Object.wait(Object.java)
       at java.lang.Thread.parkFor$(Thread.java:2128)
       at sun.misc.Unsafe.park(Unsafe.java:325)
       at java.util.concurrent.locks.LockSupport.park(LockSupport.java:161)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2035)
       at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1091)
       at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1084)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1058)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1118)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
       at java.lang.Thread.run(Thread.java:762)

#34. OSH_NetworkHandlerThread
       at java.lang.Object.wait(Object.java)
       at java.lang.Object.wait(Object.java:407)
       at java.lang.Thread.join(Thread.java:1299)
       at com.onesignal.OneSignalRestClient.makeRequest(OneSignalRestClient.java:102)
       at com.onesignal.OneSignalRestClient.postSync(OneSignalRestClient.java:86)
       at com.onesignal.OneSignalStateSynchronizer.syncUserState(OneSignalStateSynchronizer.java:622)
       at com.onesignal.OneSignalStateSynchronizer$NetworkHandlerThread$1.run(OneSignalStateSynchronizer.java:538)
       at android.os.Handler.handleCallback(Handler.java:751)
       at android.os.Handler.dispatchMessage(Handler.java:95)
       at android.os.Looper.loop(Looper.java:154)
       at android.os.HandlerThread.run(HandlerThread.java:61)

#35. RxSchedulerPurge-1
       at java.lang.Object.wait(Object.java)
       at java.lang.Thread.parkFor$(Thread.java:2128)
       at sun.misc.Unsafe.park(Unsafe.java:325)
       at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:201)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2077)
       at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1103)
       at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1084)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1058)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1118)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
       at java.lang.Thread.run(Thread.java:762)

#36. OkHttp ConnectionPool
       at java.lang.Object.wait(Object.java)
       at com.android.okhttp.ConnectionPool.performCleanup(ConnectionPool.java:319)
       at com.android.okhttp.ConnectionPool.runCleanupUntilPoolIsEmpty(ConnectionPool.java:256)
       at com.android.okhttp.ConnectionPool.-wrap0(ConnectionPool.java)
       at com.android.okhttp.ConnectionPool$1.run(ConnectionPool.java:102)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
       at java.lang.Thread.run(Thread.java:762)

#37. OkHttp https://client.relay.crisp.chat/...
       at com.android.org.conscrypt.NativeCrypto.SSL_read(NativeCrypto.java)
       at com.android.org.conscrypt.OpenSSLSocketImpl$SSLInputStream.read(OpenSSLSocketImpl.java:789)
       at okio.Okio$2.read(Okio.java:139)
       at okio.AsyncTimeout$2.read(AsyncTimeout.java:237)
       at okio.RealBufferedSource.request(RealBufferedSource.java:67)
       at okio.RealBufferedSource.require(RealBufferedSource.java:60)
       at okio.RealBufferedSource.readByte(RealBufferedSource.java:73)
       at okhttp3.internal.ws.WebSocketReader.readHeader(WebSocketReader.java:113)
       at okhttp3.internal.ws.WebSocketReader.processNextFrame(WebSocketReader.java:97)
       at okhttp3.internal.ws.RealWebSocket.loopReader(RealWebSocket.java:262)
       at okhttp3.internal.ws.RealWebSocket$2.onResponse(RealWebSocket.java:201)
       at okhttp3.RealCall$AsyncCall.execute(RealCall.java:141)
       at okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
       at java.lang.Thread.run(Thread.java:762)

#38. Okio Watchdog
       at java.lang.Object.wait(Object.java)
       at com.android.okhttp.okio.AsyncTimeout.awaitTimeout(AsyncTimeout.java:323)
       at com.android.okhttp.okio.AsyncTimeout.-wrap0(AsyncTimeout.java)
       at com.android.okhttp.okio.AsyncTimeout$Watchdog.run(AsyncTimeout.java:286)

#39. AsyncTask #1
       at java.lang.Object.wait(Object.java)
       at java.lang.Thread.parkFor$(Thread.java:2128)
       at sun.misc.Unsafe.park(Unsafe.java:325)
       at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:201)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2077)
       at java.util.concurrent.LinkedBlockingQueue.poll(LinkedBlockingQueue.java:438)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1057)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1118)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
       at java.lang.Thread.run(Thread.java:762)

#40. GoogleApiHandler
       at android.os.MessageQueue.nativePollOnce(MessageQueue.java)
       at android.os.MessageQueue.next(MessageQueue.java:323)
       at android.os.Looper.loop(Looper.java:136)
       at android.os.HandlerThread.run(HandlerThread.java:61)

#41. Okio Watchdog
       at java.lang.Object.wait(Object.java)
       at okio.AsyncTimeout.awaitTimeout(AsyncTimeout.java:361)
       at okio.AsyncTimeout$Watchdog.run(AsyncTimeout.java:312)

#42. HeapTaskDaemon
       at dalvik.system.VMRuntime.runHeapTasks(VMRuntime.java)
       at java.lang.Daemons$HeapTaskDaemon.run(Daemons.java:433)
       at java.lang.Thread.run(Thread.java:762)

#43. RxComputationThreadPool-1
       at java.lang.Object.wait(Object.java)
       at java.lang.Thread.parkFor$(Thread.java:2128)
       at sun.misc.Unsafe.park(Unsafe.java:325)
       at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:201)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2077)
       at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1103)
       at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1084)
       at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1058)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1118)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
       at java.lang.Thread.run(Thread.java:762)

#44. FinalizerDaemon
       at java.lang.Object.wait(Object.java)
       at java.lang.Object.wait(Object.java:407)
       at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:188)
       at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:209)
       at java.lang.Daemons$FinalizerDaemon.run(Daemons.java:204)
       at java.lang.Thread.run(Thread.java:762)

#45. FocusHandlerThread
       at android.os.MessageQueue.nativePollOnce(MessageQueue.java)
       at android.os.MessageQueue.next(MessageQueue.java:323)
       at android.os.Looper.loop(Looper.java:136)
       at android.os.HandlerThread.run(HandlerThread.java:61)

Same issue after every update. It's really hurting user experience.

@Karthikg206 @tantom Can you use the snapshot build noted in my https://github.com/OneSignal/OneSignal-Android-SDK/issues/263#issuecomment-349533313 comment in your next app release? This will provide a better stack trace so we can try to narrow down the issue.

@jkasten2

Fatal Exception: java.lang.SecurityException: Permission Denial: opening provider com.google.android.gms.phenotype.provider.ConfigurationProvider from ProcessRecord{47cee8a 9225:com.onemena.teflylife/u0a137} (pid=9225, uid=10137) that is not exported from uid 10006
       at android.os.Parcel.readException(Parcel.java:1546)
       at android.os.Parcel.readException(Parcel.java:1499)
       at android.app.ActivityManagerProxy.getContentProvider(ActivityManagerNative.java:3504)
       at android.app.ActivityThread.acquireProvider(ActivityThread.java:5062)
       at android.app.ContextImpl$ApplicationContentResolver.acquireUnstableProvider(ContextImpl.java:2737)
       at android.content.ContentResolver.acquireUnstableProvider(ContentResolver.java:1446)
       at android.content.ContentResolver.query(ContentResolver.java:466)
       at android.content.ContentResolver.query(ContentResolver.java:426)
       at com.google.android.gms.internal.zzctv.zzbco(Unknown Source)
       at com.google.android.gms.internal.zzctv.zza(Unknown Source)
       at com.google.android.gms.internal.zzcuj.zzbct(Unknown Source)
       at com.google.android.gms.internal.zzcui.zzdz(Unknown Source)
       at com.google.android.gms.internal.zzcui.zzbcp(Unknown Source)
       at com.google.android.gms.internal.zzcui.zzdz(Unknown Source)
       at com.google.android.gms.internal.zzbeu.zzcb(Unknown Source)
       at com.google.android.gms.internal.zzbea.zzbk(Unknown Source)
       at com.google.android.gms.internal.zzevz.zzckd(Unknown Source)
       at com.google.android.gms.internal.zzevz.zzcke(Unknown Source)
       at com.google.android.gms.internal.zzevz.zzckd(Unknown Source)
       at com.google.android.gms.internal.zzewc.run(Unknown Source)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
       at java.lang.Thread.run(Thread.java:818)

This is my OneSignal dependence

compile 'com.onesignal:OneSignal:4.0.0-20171206.043726-5'

This is seems like same exception

we added the snapshot as well. no difference in stacktrace.

We noticed the crash happens in several LGE phones, in Samsung Galaxy J3, in Galaxy Tab S2 9.7, in SAMSUNG-SM-J727A, and in Motorola G4, G5, XT1585. All of those are running Android 7.0

The stacktrace is always the same

Fatal Exception: android.app.RemoteServiceException: Bad notification posted from package xxx.xxx.xxx: Couldn't expand RemoteViews for: StatusBarNotification(pkg=xxx.xxx.xxx user=UserHandle{0} id=-1782794668 tag=null key=0|xxx.xxx.xxx|-1782794668|null|10213: Notification(pri=0 contentView=null vibrate=null sound=null defaults=0x0 flags=0x218 color=0x00000000 groupKey=xxxx vis=PUBLIC semFlags=0x0 semPriority=0))
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1813)
       at android.os.Handler.dispatchMessage(Handler.java:102)
       at android.os.Looper.loop(Looper.java:154)
       at android.app.ActivityThread.main(ActivityThread.java:6776)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1520)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1410)

Is there anything we can do apart from the snapshot?

@sw926 Found the same crash you reported on stackoverflow.
https://stackoverflow.com/questions/47257407/securityexception-permission-denial-opening-provider-com-google-android-gms-phe

It is a bug in the GCM / FCM library. Doesn't look like the issue was resolved yet but the comments in that post have a lot of details on the issue.

@dilah Thanks for reporting back. Just to confirm this wasn't trigger from something else, do you have any other code or SDKs in your app?

  • Did you see the same corresponding spike in this crash after the update like the last time you released an app update?
  • Do you see any new crashes related to OneSignal or notifications after this update?

@jkasten2 yes every time we upload a new version in play store we get those issues the first days. then crash goes away until next release.
no new issues related to notifications after this update.

Oh i have the same crash on device Android 7.0. Have any solution for this issue?
I have used FCM 11.4.2

@jkasten2 Guys, this issue has been going on for a long time now and we are still not able to get rid of this annoying bug.

Please give us a proper answer to what we should do to provide.
If a workaround is needed we are open but ideally, you find the final fix for it.

@andresfabreu is working on from our side.

Hello.
I faced with the same issue. I also faced with the same error when I used custom view for NotificationManager via RemoteView. My mistake was that I used direct values of width and height but I solved it by using math_parent in custom view.
I don't sure, but I think the problem can be in this file. This link can be useful.
@jkasten2 Is it possible to use custom RemoteView instead yours?

Regards!

@LDALEGRIA @andresfabreu Just to confirm, your are not creating any notifications outside of OneSignal when your app is updated? Or using the NotificationExtenderService to change any notifications?
Also have you tried my pre-post notification rendering build from Dec 1st in your production app?

We have tried a number of approaches to reproducing this Android bug but none of our attempts have reproduce this crash. We are going to take another pass at both a deeper look into the Android source code as well try some restoring notifications at a slower rate.

As a work around the notification restore feature can be disabled with the following to prevent this crash until we can find a fix.
Add following under the <application> tag in your AndroidManifest.xml.

<manifest ...>
    <application ...>
        ...
        <receiver android:name="com.onesignal.UpgradeReceiver" tools:node="remove" />
    </application>
</manifest>

@KirilaMenski The custom remote notification view onesignal_bgimage_notif_layout.xml you linked to is only used if you added a background image. The notifications we have checked so far didn't included a background picture as part of the payload.

If you would like to use a custom notification view you can follow this guide.
https://documentation.onesignal.com/docs/android-customizations#section-background-data-and-notification-overriding

FCM to 11.8.0, Support to 27.0.0, oneSignal to 3.6.0 , it also crash on device Android 7.0.
1.no creating any notifications outside of OneSignal
2.no using the NotificationExtenderService to change any notifications
3.it always happened in samsung 7.0 when updated app or new installed app
Have been watching for a long time to wait for you to solve this onesignal issue!!!

I think you can use a few Samsung Anndroid7 models, and then update or install the test apk that your upload to play store, go through the complete process

@whosea Thanks for the details about your setup. We will go through the Google Play process to be thorough but only a lower percentage of users are seeing this on a few apps so am not hopeful this will result in reproducing the issue.

I just made a number changes to the notification restoring logic in PR #462. In summary, it restores notifications at a slower rate with less priority to prevents spiking the CPU. If this Android bug is related to a race condition then this should fix or drop the issue to almost zero.

If the changes do not fix this, we will add error tracking which will include a list of notification properties that were restored leading up to the crash. Then we can generate the same notifications, in the same order, which should reproduce the issue. Reproducing is the main obstacle, without it we can't dig in deeper or confirm any future changes would be helpful until then.

PR #462 will be included in the next release and we'll update this thread when it is available.

OneSignal version 3.8.2 is now available with the changes noted above. Please let us know if this fixes your issue or if it has any effect on the number of reports.

I have this crash in my crashlitics dashboard. It appears on Samsung Galaxy A3 running on Android 7.0 I'm using version 3.8.2 in my app

@zzsdeo Can you answer the following so we have more details?

  1. Are you creating any notifications outside of OneSignal in your app? Including any other SDKs
  2. Are you using the NotificationExtenderService?
  3. Did you have OneSignal in the last version of your app? If so, is ratio of effected users less than the last version of the SK?
  4. Could you share your crashlitics link here or with OneSignal support?

Thanks!

@jkasten2

  1. No
  2. Yes
  3. I'm using OneSignal for about 1 year and I did not get these crashes before update to version 3.8.2 This bug affected only one user so far.
  4. I cannot figure out how to share the crash in Firebase Crashlitics. It has not share button like in old dashboard (fabric.io). I paste stack trace right here.

Stacktrace of all threads

Fatal Exception: android.app.RemoteServiceException
Bad notification posted from package top.shoppinglist.shared: Couldn't expand RemoteViews for: StatusBarNotification(pkg=top.shoppinglist.shared user=UserHandle{0} id=-281654288 tag=null key=0|top.shoppinglist.shared|-281654288|null|10194: Notification(pri=0 contentView=null vibrate=null sound=null defaults=0x0 flags=0x218 color=0x00000000 groupKey=SSL_notifications vis=PUBLIC semFlags=0x0 semPriority=0))
android.app.ActivityThread$H.handleMessage (ActivityThread.java:1813)
android.os.Handler.dispatchMessage (Handler.java:102)
android.os.Looper.loop (Looper.java:154)
arrow_right
android.app.ActivityThread.main (ActivityThread.java:6776)
java.lang.reflect.Method.invoke (Method.java)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:1518)
com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1408)
小斜芯泄: main #1
android.app.ActivityThread$H.handleMessage (ActivityThread.java:1813)
android.os.Handler.dispatchMessage (Handler.java:102)
android.os.Looper.loop (Looper.java:154)
android.app.ActivityThread.main (ActivityThread.java:6776)
java.lang.reflect.Method.invoke (Method.java)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:1518)
com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1408)
ONESIGNAL_EXECUTOR_6058 #2
java.lang.Object.wait (Object.java)
java.lang.Thread.parkFor$ (Thread.java:2128)
sun.misc.Unsafe.park (Unsafe.java:325)
java.util.concurrent.locks.LockSupport.park (LockSupport.java:161)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await (AbstractQueuedSynchronizer.java:2035)
java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take (ScheduledThreadPoolExecutor.java:1091)
java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take (ScheduledThreadPoolExecutor.java:1084)
java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1058)
java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1118)
java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:607)
java.lang.Thread.run (Thread.java:762)
pool-2-thread-1 #3
java.lang.Object.wait (Object.java)
java.lang.Thread.parkFor$ (Thread.java:2128)
sun.misc.Unsafe.park (Unsafe.java:325)
java.util.concurrent.locks.LockSupport.park (LockSupport.java:161)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await (AbstractQueuedSynchronizer.java:2035)
java.util.concurrent.LinkedBlockingQueue.take (LinkedBlockingQueue.java:413)
java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1058)
java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1118)
java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:607)
java.lang.Thread.run (Thread.java:762)
ONESIGNAL_EXECUTOR_6077 #4
java.lang.Object.wait (Object.java)
java.lang.Thread.parkFor$ (Thread.java:2128)
sun.misc.Unsafe.park (Unsafe.java:325)
java.util.concurrent.locks.LockSupport.park (LockSupport.java:161)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await (AbstractQueuedSynchronizer.java:2035)
java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take (ScheduledThreadPoolExecutor.java:1091)
java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take (ScheduledThreadPoolExecutor.java:1084)
java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1058)
java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1118)
java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:607)
java.lang.Thread.run (Thread.java:762)
ONESIGNAL_EXECUTOR_6064 #5
java.lang.Object.wait (Object.java)
java.lang.Thread.parkFor$ (Thread.java:2128)
sun.misc.Unsafe.park (Unsafe.java:325)
java.util.concurrent.locks.LockSupport.park (LockSupport.java:161)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await (AbstractQueuedSynchronizer.java:2035)
java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take (ScheduledThreadPoolExecutor.java:1091)
java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take (ScheduledThreadPoolExecutor.java:1084)
java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1058)
java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1118)
java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:607)
java.lang.Thread.run (Thread.java:762)
Queue #6
java.lang.Object.wait (Object.java)
java.lang.Thread.parkFor$ (Thread.java:2128)
sun.misc.Unsafe.park (Unsafe.java:325)
java.util.concurrent.locks.LockSupport.park (LockSupport.java:161)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await (AbstractQueuedSynchronizer.java:2035)
java.util.concurrent.PriorityBlockingQueue.take (PriorityBlockingQueue.java:519)
io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.performOperation (DependencyPriorityBlockingQueue.java:197)
io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.get (DependencyPriorityBlockingQueue.java:236)
io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take (DependencyPriorityBlockingQueue.java:65)
io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take (DependencyPriorityBlockingQueue.java:46)
java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1058)
java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1118)
java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:607)
java.lang.Thread.run (Thread.java:762)
pool-4-thread-1 #7
java.lang.Object.wait (Object.java)
java.lang.Thread.parkFor$ (Thread.java:2128)
sun.misc.Unsafe.park (Unsafe.java:325)
java.util.concurrent.locks.LockSupport.park (LockSupport.java:161)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await (AbstractQueuedSynchronizer.java:2035)
java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take (ScheduledThreadPoolExecutor.java:1091)
java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take (ScheduledThreadPoolExecutor.java:1084)
java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1058)
java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1118)
java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:607)
java.lang.Thread.run (Thread.java:762)
Measurement Worker #8
java.lang.Object.wait (Object.java)
java.lang.Object.wait (Object.java:407)
com.google.android.gms.internal.zzcil.run (Unknown Source)
IntentService[NotificationRestoreService] #9
java.lang.Thread.sleep (Thread.java)
java.lang.Thread.sleep (Thread.java:371)
java.lang.Thread.sleep (Thread.java:313)
com.onesignal.OSUtils.sleep (OSUtils.java:290)
com.onesignal.NotificationRestorer.showNotifications (NotificationRestorer.java:219)
com.onesignal.NotificationRestorer.restore (NotificationRestorer.java:147)
com.onesignal.NotificationRestoreService.onHandleIntent (NotificationRestoreService.java:43)
android.app.IntentService$ServiceHandler.handleMessage (IntentService.java:67)
android.os.Handler.dispatchMessage (Handler.java:102)
android.os.Looper.loop (Looper.java:154)
android.os.HandlerThread.run (HandlerThread.java:61)
FocusHandlerThread #10
android.os.MessageQueue.nativePollOnce (MessageQueue.java)
android.os.MessageQueue.next (MessageQueue.java:323)
android.os.Looper.loop (Looper.java:136)
android.os.HandlerThread.run (HandlerThread.java:61)
ONESIGNAL_EXECUTOR_6081 #11
java.lang.Object.wait (Object.java)
java.lang.Thread.parkFor$ (Thread.java:2128)
sun.misc.Unsafe.park (Unsafe.java:325)
java.util.concurrent.locks.LockSupport.park (LockSupport.java:161)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await (AbstractQueuedSynchronizer.java:2035)
java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take (ScheduledThreadPoolExecutor.java:1091)
java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take (ScheduledThreadPoolExecutor.java:1084)
java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1058)
java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1118)
java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:607)
java.lang.Thread.run (Thread.java:762)
ONESIGNAL_EXECUTOR_6065 #12
java.lang.Object.wait (Object.java)
java.lang.Thread.parkFor$ (Thread.java:2128)
sun.misc.Unsafe.park (Unsafe.java:325)
java.util.concurrent.locks.LockSupport.park (LockSupport.java:161)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await (AbstractQueuedSynchronizer.java:2035)
java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take (ScheduledThreadPoolExecutor.java:1091)
java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take (ScheduledThreadPoolExecutor.java:1084)
java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1058)
java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1118)
java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:607)
java.lang.Thread.run (Thread.java:762)
FinalizerDaemon #13
java.lang.Object.wait (Object.java)
java.lang.Object.wait (Object.java:407)
java.lang.ref.ReferenceQueue.remove (ReferenceQueue.java:188)
java.lang.ref.ReferenceQueue.remove (ReferenceQueue.java:209)
java.lang.Daemons$FinalizerDaemon.run (Daemons.java:204)
java.lang.Thread.run (Thread.java:762)
GoogleApiHandler #14
android.os.MessageQueue.nativePollOnce (MessageQueue.java)
android.os.MessageQueue.next (MessageQueue.java:323)
android.os.Looper.loop (Looper.java:136)
android.os.HandlerThread.run (HandlerThread.java:61)
pool-5-thread-1 #15
java.lang.Object.wait (Object.java)
java.lang.Thread.parkFor$ (Thread.java:2128)
sun.misc.Unsafe.park (Unsafe.java:325)
java.util.concurrent.locks.LockSupport.parkNanos (LockSupport.java:201)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos (AbstractQueuedSynchronizer.java:2077)
java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take (ScheduledThreadPoolExecutor.java:1103)
java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take (ScheduledThreadPoolExecutor.java:1084)
java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1058)
java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1118)
java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:607)
java.lang.Thread.run (Thread.java:762)
TokenRefresher #16
android.os.MessageQueue.nativePollOnce (MessageQueue.java)
android.os.MessageQueue.next (MessageQueue.java:323)
android.os.Looper.loop (Looper.java:136)
android.os.HandlerThread.run (HandlerThread.java:61)
HeapTaskDaemon #17
dalvik.system.VMRuntime.runHeapTasks (VMRuntime.java)
java.lang.Daemons$HeapTaskDaemon.run (Daemons.java:433)
java.lang.Thread.run (Thread.java:762)
Okio Watchdog #18
java.lang.Object.wait (Object.java)
com.android.okhttp.okio.AsyncTimeout.awaitTimeout (AsyncTimeout.java:323)
com.android.okhttp.okio.AsyncTimeout.-wrap0 (AsyncTimeout.java)
com.android.okhttp.okio.AsyncTimeout$Watchdog.run (AsyncTimeout.java:286)
Queue #19
java.lang.Object.wait (Object.java)
java.lang.Thread.parkFor$ (Thread.java:2128)
sun.misc.Unsafe.park (Unsafe.java:325)
java.util.concurrent.locks.LockSupport.park (LockSupport.java:161)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await (AbstractQueuedSynchronizer.java:2035)
java.util.concurrent.PriorityBlockingQueue.take (PriorityBlockingQueue.java:519)
io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.performOperation (DependencyPriorityBlockingQueue.java:197)
io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.get (DependencyPriorityBlockingQueue.java:236)
io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take (DependencyPriorityBlockingQueue.java:65)
io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take (DependencyPriorityBlockingQueue.java:46)
java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1058)
java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1118)
java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:607)
java.lang.Thread.run (Thread.java:762)
Crashlytics Exception Handler1 #20
dalvik.system.VMStack.getThreadStackTrace (VMStack.java)
java.lang.Thread.getStackTrace (Thread.java:1567)
java.lang.Thread.getAllStackTraces (Thread.java:1617)
com.crashlytics.android.core.CrashlyticsController.writeSessionEvent (CrashlyticsController.java:1334)
com.crashlytics.android.core.CrashlyticsController.writeFatal (CrashlyticsController.java:1021)
com.crashlytics.android.core.CrashlyticsController.access$400 (CrashlyticsController.java:68)
com.crashlytics.android.core.CrashlyticsController$7.call (CrashlyticsController.java:327)
com.crashlytics.android.core.CrashlyticsController$7.call (CrashlyticsController.java:320)
java.util.concurrent.FutureTask.run (FutureTask.java:237)
java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1133)
java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:607)
io.fabric.sdk.android.services.common.ExecutorUtils$1$1.onRun (ExecutorUtils.java:75)
io.fabric.sdk.android.services.common.BackgroundPriorityRunnable.run (BackgroundPriorityRunnable.java:30)
java.lang.Thread.run (Thread.java:762)
Queue #21
java.lang.Object.wait (Object.java)
java.lang.Thread.parkFor$ (Thread.java:2128)
sun.misc.Unsafe.park (Unsafe.java:325)
java.util.concurrent.locks.LockSupport.park (LockSupport.java:161)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await (AbstractQueuedSynchronizer.java:2035)
java.util.concurrent.PriorityBlockingQueue.take (PriorityBlockingQueue.java:519)
io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.performOperation (DependencyPriorityBlockingQueue.java:197)
io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.get (DependencyPriorityBlockingQueue.java:236)
io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take (DependencyPriorityBlockingQueue.java:65)
io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take (DependencyPriorityBlockingQueue.java:46)
java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1058)
java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1118)
java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:607)
java.lang.Thread.run (Thread.java:762)
ReferenceQueueDaemon #22
java.lang.Object.wait (Object.java)
java.lang.Daemons$ReferenceQueueDaemon.run (Daemons.java:150)
java.lang.Thread.run (Thread.java:762)
Answers Events Handler1 #23
java.lang.Object.wait (Object.java)
java.lang.Thread.parkFor$ (Thread.java:2128)
sun.misc.Unsafe.park (Unsafe.java:325)
java.util.concurrent.locks.LockSupport.parkNanos (LockSupport.java:201)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos (AbstractQueuedSynchronizer.java:2077)
java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take (ScheduledThreadPoolExecutor.java:1103)
java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take (ScheduledThreadPoolExecutor.java:1084)
java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1058)
java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1118)
java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:607)
io.fabric.sdk.android.services.common.ExecutorUtils$1$1.onRun (ExecutorUtils.java:75)
io.fabric.sdk.android.services.common.BackgroundPriorityRunnable.run (BackgroundPriorityRunnable.java:30)
java.lang.Thread.run (Thread.java:762)
ONESIGNAL_EXECUTOR_6078 #24
java.lang.Object.wait (Object.java)
java.lang.Thread.parkFor$ (Thread.java:2128)
sun.misc.Unsafe.park (Unsafe.java:325)
java.util.concurrent.locks.LockSupport.park (LockSupport.java:161)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await (AbstractQueuedSynchronizer.java:2035)
java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take (ScheduledThreadPoolExecutor.java:1091)
java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take (ScheduledThreadPoolExecutor.java:1084)
java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1058)
java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1118)
java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:607)
java.lang.Thread.run (Thread.java:762)
ONESIGNAL_EXECUTOR_6062 #25
java.lang.Object.wait (Object.java)
java.lang.Thread.parkFor$ (Thread.java:2128)
sun.misc.Unsafe.park (Unsafe.java:325)
java.util.concurrent.locks.LockSupport.park (LockSupport.java:161)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await (AbstractQueuedSynchronizer.java:2035)
java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take (ScheduledThreadPoolExecutor.java:1091)
java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take (ScheduledThreadPoolExecutor.java:1084)
java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1058)
java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1118)
java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:607)
java.lang.Thread.run (Thread.java:762)
ONESIGNAL_EXECUTOR_6073 #26
java.lang.Object.wait (Object.java)
java.lang.Thread.parkFor$ (Thread.java:2128)
sun.misc.Unsafe.park (Unsafe.java:325)
java.util.concurrent.locks.LockSupport.park (LockSupport.java:161)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await (AbstractQueuedSynchronizer.java:2035)
java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take (ScheduledThreadPoolExecutor.java:1091)
java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take (ScheduledThreadPoolExecutor.java:1084)
java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1058)
java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1118)
java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:607)
java.lang.Thread.run (Thread.java:762)
Queue #27
java.lang.Object.wait (Object.java)
java.lang.Thread.parkFor$ (Thread.java:2128)
sun.misc.Unsafe.park (Unsafe.java:325)
java.util.concurrent.locks.LockSupport.park (LockSupport.java:161)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await (AbstractQueuedSynchronizer.java:2035)
java.util.concurrent.PriorityBlockingQueue.take (PriorityBlockingQueue.java:519)
io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.performOperation (DependencyPriorityBlockingQueue.java:197)
io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.get (DependencyPriorityBlockingQueue.java:236)
io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take (DependencyPriorityBlockingQueue.java:65)
io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take (DependencyPriorityBlockingQueue.java:46)
java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1058)
java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1118)
java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:607)
java.lang.Thread.run (Thread.java:762)
OSH_NetworkHandlerThread #28
android.os.MessageQueue.nativePollOnce (MessageQueue.java)
android.os.MessageQueue.next (MessageQueue.java:323)
android.os.Looper.loop (Looper.java:136)
android.os.HandlerThread.run (HandlerThread.java:61)
OkHttp ConnectionPool #29
java.lang.Object.wait (Object.java)
com.android.okhttp.ConnectionPool.performCleanup (ConnectionPool.java:319)
com.android.okhttp.ConnectionPool.runCleanupUntilPoolIsEmpty (ConnectionPool.java:256)
com.android.okhttp.ConnectionPool.-wrap0 (ConnectionPool.java)
com.android.okhttp.ConnectionPool$1.run (ConnectionPool.java:102)
java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1133)
java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:607)
java.lang.Thread.run (Thread.java:762)
Queue #30
java.lang.Object.wait (Object.java)
java.lang.Thread.parkFor$ (Thread.java:2128)
sun.misc.Unsafe.park (Unsafe.java:325)
java.util.concurrent.locks.LockSupport.park (LockSupport.java:161)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await (AbstractQueuedSynchronizer.java:2035)
java.util.concurrent.PriorityBlockingQueue.take (PriorityBlockingQueue.java:519)
io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.performOperation (DependencyPriorityBlockingQueue.java:197)
io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.get (DependencyPriorityBlockingQueue.java:236)
io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take (DependencyPriorityBlockingQueue.java:65)
io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take (DependencyPriorityBlockingQueue.java:46)
java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1058)
java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1118)
java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:607)
java.lang.Thread.run (Thread.java:762)
Queue #31
java.lang.Object.wait (Object.java)
java.lang.Thread.parkFor$ (Thread.java:2128)
sun.misc.Unsafe.park (Unsafe.java:325)
java.util.concurrent.locks.LockSupport.park (LockSupport.java:161)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await (AbstractQueuedSynchronizer.java:2035)
java.util.concurrent.PriorityBlockingQueue.take (PriorityBlockingQueue.java:519)
io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.performOperation (DependencyPriorityBlockingQueue.java:197)
io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.get (DependencyPriorityBlockingQueue.java:236)
io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take (DependencyPriorityBlockingQueue.java:65)
io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take (DependencyPriorityBlockingQueue.java:46)
java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1058)
java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1118)
java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:607)
java.lang.Thread.run (Thread.java:762)
FinalizerWatchdogDaemon #32
java.lang.Thread.sleep (Thread.java)
java.lang.Thread.sleep (Thread.java:371)
java.lang.Thread.sleep (Thread.java:313)
java.lang.Daemons$FinalizerWatchdogDaemon.sleepFor (Daemons.java:314)
java.lang.Daemons$FinalizerWatchdogDaemon.waitForFinalization (Daemons.java:336)
java.lang.Daemons$FinalizerWatchdogDaemon.run (Daemons.java:253)
java.lang.Thread.run (Thread.java:762)
ONESIGNAL_EXECUTOR_6082 #33
java.lang.Object.wait (Object.java)
java.lang.Thread.parkFor$ (Thread.java:2128)
sun.misc.Unsafe.park (Unsafe.java:325)
java.util.concurrent.locks.LockSupport.park (LockSupport.java:161)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await (AbstractQueuedSynchronizer.java:2035)
java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take (ScheduledThreadPoolExecutor.java:1091)
java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take (ScheduledThreadPoolExecutor.java:1084)
java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1058)
java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1118)
java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:607)
java.lang.Thread.run (Thread.java:762)
Queue #34
java.lang.Object.wait (Object.java)
java.lang.Thread.parkFor$ (Thread.java:2128)
sun.misc.Unsafe.park (Unsafe.java:325)
java.util.concurrent.locks.LockSupport.park (LockSupport.java:161)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await (AbstractQueuedSynchronizer.java:2035)
java.util.concurrent.PriorityBlockingQueue.take (PriorityBlockingQueue.java:519)
io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.performOperation (DependencyPriorityBlockingQueue.java:197)
io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.get (DependencyPriorityBlockingQueue.java:236)
io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take (DependencyPriorityBlockingQueue.java:65)
io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take (DependencyPriorityBlockingQueue.java:46)
java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1058)
java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1118)
java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:607)
java.lang.Thread.run (Thread.java:762)
ONESIGNAL_EXECUTOR_6083 #35
java.lang.Object.wait (Object.java)
java.lang.Thread.parkFor$ (Thread.java:2128)
sun.misc.Unsafe.park (Unsafe.java:325)
java.util.concurrent.locks.LockSupport.park (LockSupport.java:161)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await (AbstractQueuedSynchronizer.java:2035)
java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take (ScheduledThreadPoolExecutor.java:1091)
java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take (ScheduledThreadPoolExecutor.java:1084)
java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1058)
java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1118)
java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:607)
java.lang.Thread.run (Thread.java:762)
AsyncTask #1 #36
java.lang.Thread.sleep (Thread.java)
java.lang.Thread.sleep (Thread.java:371)
java.lang.Thread.sleep (Thread.java:313)
com.onesignal.OSUtils.sleep (OSUtils.java:290)
com.onesignal.NotificationExtenderService.onNotificationProcessing (NotificationExtenderService.java:207)
com.onesignal.NotificationExtenderService.processIntent (NotificationExtenderService.java:155)
com.onesignal.NotificationExtenderService.onNotificationProcessing (NotificationExtenderService.java:123)
com.onesignal.JobIntentService$CommandProcessor.doInBackground (JobIntentService.java:386)
com.onesignal.JobIntentService$CommandProcessor.doInBackground (JobIntentService.java:377)
android.os.AsyncTask$2.call (AsyncTask.java:304)
java.util.concurrent.FutureTask.run (FutureTask.java:237)
java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1133)
java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:607)
java.lang.Thread.run (Thread.java:762)
Queue #37
java.lang.Object.wait (Object.java)
java.lang.Thread.parkFor$ (Thread.java:2128)
sun.misc.Unsafe.park (Unsafe.java:325)
java.util.concurrent.locks.LockSupport.park (LockSupport.java:161)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await (AbstractQueuedSynchronizer.java:2035)
java.util.concurrent.PriorityBlockingQueue.take (PriorityBlockingQueue.java:519)
io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.performOperation (DependencyPriorityBlockingQueue.java:197)
io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.get (DependencyPriorityBlockingQueue.java:236)
io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take (DependencyPriorityBlockingQueue.java:65)
io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take (DependencyPriorityBlockingQueue.java:46)
java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1058)
java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1118)
java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:607)
java.lang.Thread.run (Thread.java:762)
Queue #38
java.lang.Object.wait (Object.java)
java.lang.Thread.parkFor$ (Thread.java:2128)
sun.misc.Unsafe.park (Unsafe.java:325)
java.util.concurrent.locks.LockSupport.park (LockSupport.java:161)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await (AbstractQueuedSynchronizer.java:2035)
java.util.concurrent.PriorityBlockingQueue.take (PriorityBlockingQueue.java:519)
io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.performOperation (DependencyPriorityBlockingQueue.java:197)
io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.get (DependencyPriorityBlockingQueue.java:236)
io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take (DependencyPriorityBlockingQueue.java:65)
io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take (DependencyPriorityBlockingQueue.java:46)
java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1058)
java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1118)
java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:607)
java.lang.Thread.run (Thread.java:762)
FirebaseDatabaseWorker #39
java.lang.Object.wait (Object.java)
java.lang.Thread.parkFor$ (Thread.java:2128)
sun.misc.Unsafe.park (Unsafe.java:325)
java.util.concurrent.locks.LockSupport.parkNanos (LockSupport.java:201)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos (AbstractQueuedSynchronizer.java:2077)
java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take (ScheduledThreadPoolExecutor.java:1103)
java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take (ScheduledThreadPoolExecutor.java:1084)
java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1058)
java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1118)
java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:607)
java.lang.Thread.run (Thread.java:762)

@zzsdeo Thanks, few more questions

  1. When did you last release an update for your app?
  2. What version of the OneSignal SDK were you using before?
  3. Did you recently start adding any images to your notifications?
  4. Can you contact OneSignal support linking them this issue so they can review the notifications you sent for any settings that could be related.

@jkasten2

  1. 17 March
  2. 3.8.1 and many older versions. I timely update the SDK.
  3. No, I didn't. I'm using only text notifications.
  4. OK, I'll contact with them.

~Has anyone figured out if the crash occurs immediately after the app update is installed (when the system redisplays the persistent notification) or only after the app is launched?~

Looks like notifications are not automatically restored by the system, which is what I initially thought. Must be app code causing them to be redisplayed which triggers the crash.

I'm not using OneSignal, but I'm posting here since I'm experiencing exactly the same issue with notifications in my app, and this issue contains the most useful analysis of the problem.

In my case, I have no custom views; just plain text notifications with small icon. I've tried the following workarounds:

  1. NotificationManager.cancelAll() on first run of a new app version, before later attempting to redisplay notifications.
  2. Started using a unique PendingIntent requestCode for each different notification type, instead of blindly using 0 as the requestCode.
  3. Switch from using PendingIntent.FLAG_UPDATE_CURRENT to PendingIntent.FLAG_CANCEL_CURRENT.
  4. Changed the small icon from a vector drawable to standard PNG resource at the various different resolutions.

None of that seems to have made any difference. I'm at a total loss as to how to proceed. The only idea I have left is to disable notifications if Android version is 7.0 and the device model is one of those showing up in my crash reports.

@GrahamBorland Thanks for the details!

Like OneSignal, are you displaying notifications in reaction to the android.intent.action.MY_PACKAGE_REPLACED Intent?
Are you able to reproduce the issue? Even inconsistently on your own device?

@jkasten2

are you displaying notifications in reaction to the android.intent.action.MY_PACKAGE_REPLACED Intent?

No, my notifications display shortly after startup after running some database queries.

Are you able to reproduce the issue? Even inconsistently on your own device?

Never reproduced locally, on an emulator or a 7.0 Samsung device.

Incidentally, I'm creating my notifications with android.support.v4.app.NotificationCompat, support lib version 27.0.2.

FWIW the workaround we've gone with for now looks like this.

private val deviceBlacklist = listOf(
    "LGUS997",
    "LG-H872",
    "LGMP450",
    ...

Have any solution to fix this issue? I have same problem with Samsung device on Android 7.0

@sinhpn92 There is a work around you can use noted in https://github.com/OneSignal/OneSignal-Android-SDK/issues/263#issuecomment-369096027

I also have this issue. But I do not used OneSignal.

I am not using One Signal SDK but getting the same error

Fatal Exception: android.app.RemoteServiceException: Bad notification posted from package packagename: Couldn't expand RemoteViews for: StatusBarNotification(pkg=packagename user=UserHandle{0} id=100 tag=null score=0: Notification(pri=0 contentView=packagename/0x1090064 vibrate=null sound=android.resource://packagename/raw/notification defaults=0x0 flags=0x10 kind=[null]))
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1366)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5095)
at java.lang.reflect.Method.invokeNative(Method.java)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:602)
at dalvik.system.NativeStart.main(NativeStart.java)

We got it in YU (os 4.4.4)

I was facing the same error on same device with same Android version but the issue which I found was different. I don't know if this would help in this case but give a try. So I was using a custom layout with Android's Notification and RemoteViews classes and was getting the exact same error. After wasting an hour on it I found that the problem was with the Android's RemoteViews which was not supporting ConstraintLayout. So as soon as I changed the ConstraintLayout to RelativeLayout the code worked.
RemoteViews only support following layout classes:
FrameLayout
LinearLayout
RelativeLayout
GridLayout
and other widget classes as mentioned here.
Hope this helps.

@mahesh-gupta-23 I am not using any custom view for the notification but still getting the error so it might be some another case.

I have this issue and getting the crash reports every day from android os 7.0. Any solution for this?

Fatal Exception: android.app.RemoteServiceExceptionBad notification posted from package x.y.z: Couldn't expand RemoteViews for: StatusBarNotification(pkg=x.y.z user=UserHandle{0} id=412 tag=null score=0 key=0\|x.y.z\|412\|null\|10097: Notification(pri=0 contentView=x.y.z/0x109007e vibrate=null sound=null defaults=0x0 flags=0x8 color=0xff000000 category=transport actions=3 vis=PUBLIC))聽Raw Text

If anyone found the solution. Then plz update me.

android.app.RemoteServiceException: 

  at android.app.ActivityThread$H.handleMessage (ActivityThread.java:1651)

  at android.os.Handler.dispatchMessage (Handler.java:102)

  at android.os.Looper.loop (Looper.java:154)

  at android.app.ActivityThread.main (ActivityThread.java:6121)

  at java.lang.reflect.Method.invoke (Method.java)

  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:889)

  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:779)

OneISignal version 3.8.3
Android sdk: 27.1.1
BuildToolVersions: 27.0.3

Same here. most of noughet version crashes this.

LG,Motorola,Xiaomi Devices. any solution for that. ? @jkasten2

@Jack2jm You can disable the restore on app upgrade feature by following the instruction in my post above. https://github.com/OneSignal/OneSignal-Android-SDK/issues/263#issuecomment-369096027

We disable the notification restore feature on the app update event for Android 7.0 devices in release 3.9.1. We haven't seen any recent reports of older versions of Android or never any newer Android devices.

Please make sure you have this version or newer before reporting. A link to crashlytics and a full stack trace with the exception will be helpful if you are seeing issues still after this update

Hello there,

We are facing this issue with the Unity version of the plugin.
Could you release the fix on this version aswell ?

Thanks !

@bhallionOhbibi It was also updated. This is included in the ~OneSignal Unity SDK 2.7.1~ OneSignal Unity SDK 2.7.2.

I will post here what I think is the flow to reproduce this crash. The problem happens BEFORE the package is replaced, so, listening to MY_PACKAGE_REPLACED probably will not solve the problem if you have an ONGOING notification while upgrading, for example.

As stated before, it only happens when an update is triggered. What happens is that during the upgrade, the resource files are replaced and while the notification is still visible, a system event trigger the rendering of the notification with the resource-ids of the older version, before the notification pointers are updated to the new version.

old version/old resources -> update starts -> resources are replaced -> the notification is still visibile and pointing to the old resources ids -> the resources changed all it's id's and the update didn't finished yet -> the notification is rendered but fails to expand because can't find the resources it was pointing to -> BAD_NOTIFICATION_POSTED -> MY_PACKAGE_REPLACED event is triggered.

For example, your app do an:
mNotificationBuilder.setSmallIcon(R.drawable.ic_notification)

In your old version R.drawable.ic_notification = 0xf279bc3
In your new version, after build your resource can became R.drawable.ic_notification = 0xf32aa83

This becomes clear and problematic if you have a visible ONGOING notification while the upgrade is triggered, as I have in my app. As soon as you introduce this on your app, this crashes will start to flood your crashlogs while deploying new versions.

One possible solution would be to use the public.xml file to make all resources used by your notification constant, but this build-step is becoming deprecated with newer gradle versions, plus you will always get this crash from versions that are upgraded from versions before you introduced the public.xml file in your build.

In reality it's seems a lot with an Android bug handling notifications while upgrading.

@ianmcoelho Thanks for the insight. I believe you are correct that the resource ids are changing are the source of the issue when the app is updated. OneSignal does not use ongoing notifications but I can see how this could be a possible way to trigger this crash. Have you been able to reproduce the BAD_NOTIFICATION_POSTED crash with an ongoing notification in your testing?

That's the major problem of this bug. It's just not possible to reproduce. I tried every possible way imaginable, with no success.

I am "guessing" what's happening by the following evidence:

  • Those crashes are only detected by our crash report system, never in Automated Tests or QA'ing
  • It always spiked when we deployed new versions (as described by some users above)
  • It used to happen very rarelly, less than 0.01% of the sessions while deploying. After the deploy fase, the crashes started to vanish
  • After we introduced a new ongoing notification, a HUGE spike of BAD_NOTIFICATION_POSTED started to "flood" our crash logs in deploy fase, it's still not significant (less than 0.1% of the base), but enough to annoy the shit of our engineers.

There is this stackoverflow post that is related with this subject, and I tried every single thing described there, replacing vector-drawables, trying to catch the MY_PACKAGE_REPLACED event, setting all id's of the ongoing notification in the public.xml file, with no success.

@jkasten2 hello, what functionalities of OneSignal are going to be disabled if I apply the workaround you posted here?

@TopeMateo When the app is updated on the device notifications will disappear, however they will still show back up when the user opens the app.

Updating to OneSignal 3.9.1 will have the same effect however it is only limited to Android 7.0 as this is where we are seeing crash reports from.

@jkasten2 thank you!

@jkasten2 I have updated my app with OneSignal 3.9.1 and i had no more crashes on devices after 5 days of release. Thanks!!!

Look at the id value:

Fatal Exception: android.app.RemoteServiceException: Bad notification posted from package br.com.vivadecora.app: Couldn't expand RemoteViews for: StatusBarNotification(pkg=br.com.vivadecora.app user=UserHandle{0} >>>>id=1610499692<<<< tag=null key=0|br.com.vivadecora.app|1610499692|null|10093: Notification(pri=0 contentView=null vibrate=null sound=null defaults=0x0 flags=0x218 color=0xffcd3128 groupKey=filter vis=PUBLIC))

it is showing u the resource id that has the problem. find it in R class.
I had a similar issue with RemoteViews. I removed AppCompat Views then it fixed.

I am getting this exception on Android 5.0 on many devices

Fatal Exception: android.app.RemoteServiceException
Bad notification posted from package {package_name}: Couldn't expand RemoteViews for: StatusBarNotification(pkg={package_name} user=UserHandle{0} id=1 tag=null score=10 key=0|{package_name}|1|null|10130: Notification(pri=1 contentView={package_name}/0x109008d vibrate=null sound=null defaults=0x0 flags=0x10 color=0xffdf3931 actions=1 originalPackageName=N originalUserId=0 vis=PRIVATE))

check this:
contentView={package_name}/0x109008d
find this 0x109008d in your R class

@jkasten2
Any updates on the issue? Seems only Nougat users are facing the problem.
Fatal Exception: android.app.RemoteServiceException: Bad notification posted from package ****: Couldn't expand RemoteViews for: StatusBarNotification(pkg=**** user=UserHandle{0} id=-982247708 tag=null key=0|****|-982247708|null|10163: Notification(pri=-1 contentView=null vibrate=null sound=null defaults=0x0 flags=0x18 color=0x00000000 vis=PUBLIC semFlags=0x0 semPriority=0)) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1813) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6776) at java.lang.reflect.Method.invoke(Method.java) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1496) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1386)

image

Was this page helpful?
0 / 5 - 0 ratings