OneSignal-Android-SDK
OneSignal-Android-SDK copied to clipboard
`DeadSystemException`: OneSignal Crash: OSUtils.java line 287 com.onesignal.OSUtils.packageInstalledAndEnabled
After I have updated OneSignal unity sdk to the latest version (2.13.1) some crashes was fixed (location gms crash of my other thread is gone) but a new crash appeared as the top crash in my app.
This issue has 250 crashes affecting 200 users Devices: Galaxy Note10+ 4% Galaxy S10 3% Galaxy Note8 HUAWEI Y9 Prime 2019 4% P30 Pro 2% HUAWEI nova 5T 1% Redmi Note 8 1% Redmi Note 5 Pro <1% Redmi Note 7 <1% Lenovo K8 Note 3%
Android Versions: 78% Android 10 15% Android 9 5% Android 8 1% Android 6 <1% Other (1)
Unity Version 2018.4.26 LTS OneSignal 2.13.1
Fatal Exception: java.lang.Error FATAL EXCEPTION [FocusHandlerThread] Unity version : 2018.4.26f1 Device model : samsung SM-A705FN Device fingerprint: samsung/a70qxx/a70q:10/QP1A.190711.020/A705FNXXU5BTH4:user/release-keys Fatal Exception: java.lang.Error: FATAL EXCEPTION [FocusHandlerThread] Unity version : 2018.4.26f1 Device model : samsung SM-A705FN Device fingerprint: samsung/a70qxx/a70q:10/QP1A.190711.020/A705FNXXU5BTH4:user/release-keys
Caused by java.lang.RuntimeException: android.os.DeadSystemException
at android.app.ApplicationPackageManager.getPackageInfoAsUser(ApplicationPackageManager.java:264)
at android.app.ApplicationPackageManager.getPackageInfo(ApplicationPackageManager.java:235)
at com.onesignal.OSUtils.packageInstalledAndEnabled(OSUtils.java:287)
at com.onesignal.OSUtils.isGMSInstalledAndEnabled(OSUtils.java:299)
at com.onesignal.OSUtils.supportsGooglePush(OSUtils.java:341)
at com.onesignal.OSUtils.getDeviceType(OSUtils.java:360)
at com.onesignal.OSUtils.isAndroidDeviceType(OSUtils.java:382)
at com.onesignal.LocationController.isGooglePlayServicesAvailable(LocationController.java:286)
at com.onesignal.LocationController.onFocusChange(LocationController.java:274)
at com.onesignal.OneSignal.onAppLostFocus(OneSignal.java:1251)
at com.onesignal.ActivityLifecycleHandler$AppFocusRunnable.run(ActivityLifecycleHandler.java:263)
at android.os.Handler.handleCallback(Handler.java:883)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:237)
at android.os.HandlerThread.run(HandlerThread.java:67)
Caused by android.os.DeadSystemException
at android.app.ApplicationPackageManager.getPackageInfoAsUser(ApplicationPackageManager.java:264)
at android.app.ApplicationPackageManager.getPackageInfo(ApplicationPackageManager.java:235)
at com.onesignal.OSUtils.packageInstalledAndEnabled(OSUtils.java:287)
at com.onesignal.OSUtils.isGMSInstalledAndEnabled(OSUtils.java:299)
at com.onesignal.OSUtils.supportsGooglePush(OSUtils.java:341)
at com.onesignal.OSUtils.getDeviceType(OSUtils.java:360)
at com.onesignal.OSUtils.isAndroidDeviceType(OSUtils.java:382)
at com.onesignal.LocationController.isGooglePlayServicesAvailable(LocationController.java:286)
at com.onesignal.LocationController.onFocusChange(LocationController.java:274)
at com.onesignal.OneSignal.onAppLostFocus(OneSignal.java:1251)
at com.onesignal.ActivityLifecycleHandler$AppFocusRunnable.run(ActivityLifecycleHandler.java:263)
at android.os.Handler.handleCallback(Handler.java:883)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:237)
at android.os.HandlerThread.run(HandlerThread.java:67)
@Jeasmine are you aware of this? There's an eta for a fix? Or could you recommend an older version that does not have these crashes? Thank you very much.
Hey @andpanda! Are you able to reproduce this issue? The stack trace is pointing to android.os.DeadSystemException
result of calling getPackageInfo
, is not pointing to an issue with OneSignal perse. We will evaluate adding some more logging to see why can this be happening. But with that log, there is not much we can do. How much % of your total users are suffering from this error?
Hi @Jeasmine thank you for your fast answer. Or app is pretty stable have 97.46% crashless users. We aim to have 99%+ like our older versions.
Right now the crash that is causing the most crashes are these from one signal.
If you want more information or the stack from other threads I could provide.
I highly believe that something is not right.
I also have found one related thread on onesignal unity github: https://github.com/OneSignal/OneSignal-Unity-SDK/issues/316
Hey @andpanda thanks for the information, yeah there is something not right, but likely to be related to unity integration. If you have the thread information or any additional information that might help you are very welcome!
There are 640 threads and I would need to copy paste each one, one by one here.
I have found something interesting, there are a lot of duplicated threads with the same stack.
pool-1-thread-62 sun.misc.Unsafe.park (Unsafe.java) java.util.concurrent.locks.LockSupport.parkNanos (LockSupport.java:230) java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill (SynchronousQueue.java:461) java.util.concurrent.SynchronousQueue$TransferStack.transfer (SynchronousQueue.java:362) java.util.concurrent.SynchronousQueue.poll (SynchronousQueue.java:937) java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1091) java.util.concurrent.ThreadPoolExecutor.processTask (ThreadPoolExecutor.java:1172) java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1152) java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:641) java.lang.Thread.run (Thread.java:929)
pool-1-thread-101 sun.misc.Unsafe.park (Unsafe.java) java.util.concurrent.locks.LockSupport.parkNanos (LockSupport.java:230) java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill (SynchronousQueue.java:461) java.util.concurrent.SynchronousQueue$TransferStack.transfer (SynchronousQueue.java:362) java.util.concurrent.SynchronousQueue.poll (SynchronousQueue.java:937) java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1091) java.util.concurrent.ThreadPoolExecutor.processTask (ThreadPoolExecutor.java:1172) java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1152) java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:641) java.lang.Thread.run (Thread.java:929)
There are over 100 threads with this exact same stack.
There's another crash that seems related that only occours on Huawei devices.
HwApiCacheMangerEx.java line 194 huawei.android.app.HwApiCacheMangerEx.getPackageInfoAsUser
Fatal Exception: java.lang.Error: FATAL EXCEPTION [FocusHandlerThread] Unity version : 2018.4.26f1 Device model : HUAWEI JKM-LX1 Device fingerprint: HUAWEI/JKM-LX1/HWJKM-H:9/HUAWEIJKM-LX1/9.1.0.309C185:user/release-keys
Caused by java.lang.RuntimeException: android.os.DeadSystemException
at huawei.android.app.HwApiCacheMangerEx.getPackageInfoAsUser(HwApiCacheMangerEx.java:194)
at android.app.ApplicationPackageManager.getPackageInfoAsUser(ApplicationPackageManager.java:197)
at android.app.ApplicationPackageManager.getPackageInfo(ApplicationPackageManager.java:174)
at com.onesignal.OSUtils.packageInstalledAndEnabled(OSUtils.java:287)
at com.onesignal.OSUtils.isGMSInstalledAndEnabled(OSUtils.java:299)
at com.onesignal.OSUtils.supportsGooglePush(OSUtils.java:341)
at com.onesignal.OSUtils.getDeviceType(OSUtils.java:360)
at com.onesignal.OSUtils.isAndroidDeviceType(OSUtils.java:382)
at com.onesignal.LocationController.isGooglePlayServicesAvailable(LocationController.java:286)
at com.onesignal.LocationController.onFocusChange(LocationController.java:274)
at com.onesignal.OneSignal.onAppLostFocus(OneSignal.java:1251)
at com.onesignal.ActivityLifecycleHandler$AppFocusRunnable.run(ActivityLifecycleHandler.java:263)
at android.os.Handler.handleCallback(Handler.java:907)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:216)
at android.os.HandlerThread.run(HandlerThread.java:65)
Caused by android.os.DeadSystemException
at huawei.android.app.HwApiCacheMangerEx.getPackageInfoAsUser(HwApiCacheMangerEx.java:194)
at android.app.ApplicationPackageManager.getPackageInfoAsUser(ApplicationPackageManager.java:197)
at android.app.ApplicationPackageManager.getPackageInfo(ApplicationPackageManager.java:174)
at com.onesignal.OSUtils.packageInstalledAndEnabled(OSUtils.java:287)
at com.onesignal.OSUtils.isGMSInstalledAndEnabled(OSUtils.java:299)
at com.onesignal.OSUtils.supportsGooglePush(OSUtils.java:341)
at com.onesignal.OSUtils.getDeviceType(OSUtils.java:360)
at com.onesignal.OSUtils.isAndroidDeviceType(OSUtils.java:382)
at com.onesignal.LocationController.isGooglePlayServicesAvailable(LocationController.java:286)
at com.onesignal.LocationController.onFocusChange(LocationController.java:274)
at com.onesignal.OneSignal.onAppLostFocus(OneSignal.java:1251)
at com.onesignal.ActivityLifecycleHandler$AppFocusRunnable.run(ActivityLifecycleHandler.java:263)
at android.os.Handler.handleCallback(Handler.java:907)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:216)
at android.os.HandlerThread.run(HandlerThread.java:65)
pool-1-thread-32
at java.lang.Object.wait(Object.java)
at java.lang.Thread.parkFor$(Thread.java:2163)
at sun.misc.Unsafe.park(Unsafe.java:358)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230)
at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:461)
at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:362)
at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:937)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1091)
at java.util.concurrent.ThreadPoolExecutor.processTask(ThreadPoolExecutor.java:1172)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:784)
@Jeasmine Hello, sorry to bother, but there's any news regarding this issue?
Thank you!
@andpanda The android.os.DeadSystemException
exception happens due to app already being shutdown for another reason. See https://github.com/OneSignal/OneSignal-Android-SDK/issues/1013#issuecomment-633733684 for more details on this. This means the stacktrace isn't the root cause of why the app process is bing stopped so the cause is very difficult to pin point. The exact steps to reproduce the issue would be needed to help find the root of this issue. The app runtime shutdown my not be OneSignal related either.
I have downgraded one signal to 2.11.4, I will inform if this problem persist or disappear. Sadly I don't have a repro case. Thanks @jkasten2
Is there any fix on this? I got the same error on version 3.15.4. Do you still have the problem after downgrading to 2.11.4 @andpanda?
Hi @andpanda and @hendrawd, sorry it has been a while.
I am checking in if this is still an active crash for you?
Why don't you just try catch all exception on getPackageInfo?
We are still using version 3.15.4
@nan-li. I just checked, and we are still getting the crash. We are rarely updating our dependencies version except if there is a good reason to update. Can you confirm if the problem is already fixed on the newest version? If yes I think I can initiate a discussion to update OneSignal version.
@hendrawd Can you provide more details on the android.os.DeadSystemException
crash you are seeing?
- Steps to reproduce.
- Break down of Android version effected.
- Break down of device manufactures affected if available.
@jkasten2
- I'm not really sure because the crash is from the Crashlytics platform.
- 80% Android 5 20% Android 4
- 100% Samsung: 80% Galaxy Tab A 7.0 20% Galaxy Tab3V 7.0
@hendrawd Thanks for letting us known, this seems to be an issue with older versions of Android based on your report. We however would need details on reproducing to investigate the issue. Or a full verbose logcat leading up to the crash to investigate the root cause.
@jkasten2
- I'm not really sure because the crash is from the Crashlytics platform.
- 80% Android 5 20% Android 4
- 100% Samsung: 80% Galaxy Tab A 7.0 20% Galaxy Tab3V 7.0
Same here, can't figure how to reproduce and got report by crashlytics and mostly happened on Samsung device
Hello everyone!
This issue has become stale and will be closed. Please @ mention me if we need to revisit after upgrading to at least 4.8.7 SDK.
Also noting that we have an updated major release 5.x.x available for our Android SDK with many improvements and enhancements! Please refer to the migration guide for more information on upgrading.
Thanks!