OneSignal / OneSignal-Android-SDK

OneSignal is a free push notification service for mobile apps. This plugin makes it easy to integrate your native Android or Amazon app with OneSignal. https://onesignal.com
Other
604 stars 368 forks source link

Bad Notification: Couldn't expand RemoteViews for: StatusBarNotification. on Android Nougat #263

Closed jpusp closed 6 years ago

jpusp commented 7 years ago

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

jkasten2 commented 7 years ago

@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 support@onesignal.com

jpusp commented 7 years ago

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

anukools commented 7 years ago

@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.

jkasten2 commented 7 years ago

@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.

jpusp commented 7 years ago

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.

jkasten2 commented 7 years ago

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.
ghost commented 7 years ago

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

LDALEGRIA commented 7 years ago

We are having the same issue. Anyone on it?

jkasten2 commented 7 years ago

@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?

LDALEGRIA commented 7 years ago

@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_160crash.txt http://crashes.to/s/a4e6ad455c5

image

jkasten2 commented 7 years ago

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.

LDALEGRIA commented 7 years ago

@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.

jpusp commented 7 years ago

@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

awsleiman171 commented 7 years ago

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());
Alamgir commented 7 years ago

@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.

jpusp commented 7 years ago

@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

ifucolo commented 7 years ago

@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

jpusp commented 7 years ago

@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

dixit712 commented 6 years ago

We are having the same issue. Anyone on it?

DimaKoz commented 6 years ago

When are you planning to public 3.6.4 release?

Alamgir commented 6 years ago

@DimaKoz 3.6.4 should be available shortly

jkasten2 commented 6 years ago

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.

DimaKoz commented 6 years ago

@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)
chalup commented 6 years ago

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 :(

kirill578 commented 6 years ago

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

DimaKoz commented 6 years ago

I posted the issue on SO

josuer commented 6 years ago

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.

jaspreet-android commented 6 years ago

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)

BobyIlea commented 6 years ago

@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

dilah commented 6 years ago

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

jkasten2 commented 6 years ago

@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.

twomedia commented 6 years ago

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

ehudros commented 6 years ago

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

pawga commented 6 years ago

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

jkasten2 commented 6 years ago

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.
jkasten2 commented 6 years ago

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.

christian-tenzo commented 6 years ago

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

jkasten2 commented 6 years ago

@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.

jkasten2 commented 6 years ago

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

christian-tenzo commented 6 years ago

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

BobyIlea commented 6 years ago

@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?

jkasten2 commented 6 years ago

@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.

greywolfhalil commented 6 years ago

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 ?

jkasten2 commented 6 years ago

@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.

greywolfhalil commented 6 years ago

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

Karthikg206 commented 6 years ago

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

```java #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) ```

tantom commented 6 years ago

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

jkasten2 commented 6 years ago

@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.

sw926 commented 6 years ago

@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

dilah commented 6 years ago

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?