Search Unity

  1. Unity 2018.1 has arrived! Read about it here
    Dismiss Notice
  2. Scriptable Render Pipeline improvements, Texture Mipmap Streaming, and more! Check out what we have in store for you in the 2018.2 Beta.
    Dismiss Notice
  3. If you couldn't join the live stream, take a peek at what you missed.
    Dismiss Notice
  4. Improve your Unity skills with a certified instructor in a private, interactive classroom. Learn more.
    Dismiss Notice
  5. ARCore is out of developer preview! Read about it here.
    Dismiss Notice
  6. Magic Leap’s Lumin SDK Technical Preview for Unity lets you get started creating content for Magic Leap One™. Find more information on our blog!
    Dismiss Notice
  7. Want to see the most recent patch releases? Take a peek at the patch release page.
    Dismiss Notice

Unity IAP: java.lang.NullPointerException

Discussion in 'Unity IAP' started by Niels-Wosylus, May 31, 2018.

  1. Niels-Wosylus

    Niels-Wosylus

    Joined:
    Jan 26, 2014
    Posts:
    5
    Hi. With the latest release of Unity IAP 1.19 we have been getting crashlogs from some of our users on Android. We are not exactly sure when this crash occurs or why, but I copied the details below

    Caused by java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Object android.os.BaseBundle.get(java.lang.String)' on a null object reference
    at com.unity.purchasing.googleplay.IabHelper.getResponseCodeFromBundle(IabHelper.java:872)
    at com.unity.purchasing.googleplay.IabHelper.queryPurchaseHistory(IabHelper.java:919)
    at com.unity.purchasing.googleplay.IabHelper.queryInventory(IabHelper.java:647)
    at com.unity.purchasing.googleplay.IabHelper.queryInventory(IabHelper.java:598)
    at com.unity.purchasing.googleplay.IabHelper$3.workWith(IabHelper.java:707)
    at com.unity.purchasing.googleplay.BillingServiceManager$2.run(BillingServiceManager.java:146)
    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:761)

    Are anyone else experiencing this? It is occurring on all our games with the new update. Is there are way we can fix it, or will we need for a new update? Is it possible to somehow downgrade Unity IAP (I cannot seem to find previous releases anywhere)?

    Thanks
     
  2. unityjingyao

    unityjingyao

    Unity Technologies

    Joined:
    Feb 20, 2017
    Posts:
    103
    Hi,
    I'm sorry that I couldn't reproduce this issue on my side.
    Is it possible to offer us the full log?
    Could you please send me more information? like Android version, device model?
     
  3. JeffDUnity3D

    JeffDUnity3D

    Unity Technologies

    Joined:
    May 2, 2017
    Posts:
    1,613
  4. Niels-Wosylus

    Niels-Wosylus

    Joined:
    Jan 26, 2014
    Posts:
    5
    Thank you for your reply!

    I put the stack trace here.
    # Crashlytics - plaintext stacktrace downloaded by Niels Wosylus at Sat, 02 Jun 2018 11:05:53 GMT
    # Issue #: 10
    # Issue ID: 5b07ef8f6007d59fcde36940
    # Session ID: 5B1274AE015600012B87B702D2F08F96_DNE_0_v2
    # Date: 2018-06-02T10:43:00Z
    # OS Version: 7.1.1
    # Device: ASUS_X00DD
    # RAM Free: 34.8%
    # Disk Free: 5.4%

    Fatal Exception: java.lang.Error: FATAL EXCEPTION [pool-7-thread-1]
    Unity version : 2018.1.1f1
    Device model : asus ASUS_X00DD
    Device fingerprint: asus/WW_Phone/ASUS_X00DD:7.1.1/NMF26F/14.0200.1803.352-20180302:user/release-keys



    Caused by java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Object android.os.BaseBundle.get(java.lang.String)' on a null object reference
    at com.unity.purchasing.googleplay.IabHelper.getResponseCodeFromBundle(IabHelper.java:872)
    at com.unity.purchasing.googleplay.IabHelper.queryPurchaseHistory(IabHelper.java:919)
    at com.unity.purchasing.googleplay.IabHelper.queryInventory(IabHelper.java:647)
    at com.unity.purchasing.googleplay.IabHelper.queryInventory(IabHelper.java:598)
    at com.unity.purchasing.googleplay.IabHelper$3.workWith(IabHelper.java:707)
    at com.unity.purchasing.googleplay.BillingServiceManager$2.run(BillingServiceManager.java:146)
    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:761)

    #0. Queue
    at java.lang.Object.wait(Object.java)
    at java.lang.Thread.parkFor$(Thread.java:2127)
    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:761)

    #1. Queue
    at java.lang.Object.wait(Object.java)
    at java.lang.Thread.parkFor$(Thread.java:2127)
    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:761)

    #2. TcmReceiver
    at android.net.LocalSocketImpl.readba_native(LocalSocketImpl.java)
    at android.net.LocalSocketImpl.-wrap1(LocalSocketImpl.java)
    at android.net.LocalSocketImpl$SocketInputStream.read(LocalSocketImpl.java:110)
    at com.qti.tcmclient.DpmTcmClient$TcmReceiver.run(DpmTcmClient.java:140)
    at java.lang.Thread.run(Thread.java:761)

    #3. 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:761)

    #4. OkHttp ConnectionPool
    at java.lang.Object.wait(Object.java)
    at com.android.okhttp.ConnectionPool.performCleanup(ConnectionPool.java:307)
    at com.android.okhttp.ConnectionPool.runCleanupUntilPoolIsEmpty(ConnectionPool.java:244)
    at com.android.okhttp.ConnectionPool.-wrap0(ConnectionPool.java)
    at com.android.okhttp.ConnectionPool$1.run(ConnectionPool.java:98)
    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:761)

    #5. Queue
    at java.lang.Object.wait(Object.java)
    at java.lang.Thread.parkFor$(Thread.java:2127)
    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:761)

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

    #7. UnityMain
    at com.unity3d.player.UnityPlayer.nativeRender(Unknown Source)
    at com.unity3d.player.UnityPlayer.c(Unknown Source)
    at com.unity3d.player.UnityPlayer$e$2.queueIdle(Unknown Source)
    at android.os.MessageQueue.next(MessageQueue.java:392)
    at android.os.Looper.loop(Looper.java:139)
    at com.unity3d.player.UnityPlayer$e.run(Unknown Source)

    #8. Queue
    at java.lang.Object.wait(Object.java)
    at java.lang.Thread.parkFor$(Thread.java:2127)
    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:761)

    #9. pool-7-thread-2
    at java.lang.Object.wait(Object.java)
    at java.lang.Thread.parkFor$(Thread.java:2127)
    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:761)

    #10. pool-7-thread-1
    at java.lang.Object.wait(Object.java)
    at java.lang.Thread.parkFor$(Thread.java:2127)
    at sun.misc.Unsafe.park(Unsafe.java:325)
    at java.util.concurrent.locks.LockSupport.park(LockSupport.java:161)
    at java.util.concurrent.FutureTask.awaitDone(FutureTask.java:421)
    at java.util.concurrent.FutureTask.get(FutureTask.java:163)
    at com.crashlytics.android.core.CrashlyticsBackgroundWorker.submitAndWait(CrashlyticsBackgroundWorker.java:43)
    at com.crashlytics.android.core.CrashlyticsController.handleUncaughtException(CrashlyticsController.java:285)
    at com.crashlytics.android.core.CrashlyticsController$5.onUncaughtException(CrashlyticsController.java:269)
    at com.crashlytics.android.core.CrashlyticsUncaughtExceptionHandler.uncaughtException(CrashlyticsUncaughtExceptionHandler.java:30)
    at com.unity3d.player.k.uncaughtException(Unknown Source)
    at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1068)
    at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1063)

    #11. AsyncTask #1
    at java.lang.Object.wait(Object.java)
    at java.lang.Thread.parkFor$(Thread.java:2127)
    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:761)

    #12. FMODAudioDevice
    at android.media.AudioTrack.native_write_byte(AudioTrack.java)
    at android.media.AudioTrack.write(AudioTrack.java:1920)
    at android.media.AudioTrack.write(AudioTrack.java:1857)
    at org.fmod.FMODAudioDevice.run(Unknown Source)
    at java.lang.Thread.run(Thread.java:761)

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

    #14. Queue
    at java.lang.Object.wait(Object.java)
    at java.lang.Thread.parkFor$(Thread.java:2127)
    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:761)

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

    #16. pool-2-thread-1
    at java.lang.Object.wait(Object.java)
    at java.lang.Thread.parkFor$(Thread.java:2127)
    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:761)

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

    #18. Queue
    at java.lang.Object.wait(Object.java)
    at java.lang.Thread.parkFor$(Thread.java:2127)
    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:761)

    #19. Queue
    at java.lang.Object.wait(Object.java)
    at java.lang.Thread.parkFor$(Thread.java:2127)
    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:761)

    #20. pool-5-thread-1
    at java.lang.Object.wait(Object.java)
    at java.lang.Thread.parkFor$(Thread.java:2127)
    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:761)

    #21. Queue
    at java.lang.Object.wait(Object.java)
    at java.lang.Thread.parkFor$(Thread.java:2127)
    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:761)

    #22. Queue
    at java.lang.Object.wait(Object.java)
    at java.lang.Thread.parkFor$(Thread.java:2127)
    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:761)

    #23. Answers Events Handler1
    at java.lang.Object.wait(Object.java)
    at java.lang.Thread.parkFor$(Thread.java:2127)
    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:761)

    #24. 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:761)

    #25. AsyncTask #4
    at java.lang.Object.wait(Object.java)
    at java.lang.Thread.parkFor$(Thread.java:2127)
    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:761)

    #26. AsyncTask #3
    at java.lang.Object.wait(Object.java)
    at java.lang.Thread.parkFor$(Thread.java:2127)
    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:761)

    #27. Crashlytics Exception Handler1
    at dalvik.system.VMStack.getThreadStackTrace(VMStack.java)
    at java.lang.Thread.getStackTrace(Thread.java:1566)
    at java.lang.Thread.getAllStackTraces(Thread.java:1616)
    at com.crashlytics.android.core.CrashlyticsController.writeSessionEvent(CrashlyticsController.java:1114)
    at com.crashlytics.android.core.CrashlyticsController.writeFatal(CrashlyticsController.java:852)
    at com.crashlytics.android.core.CrashlyticsController.access$400(CrashlyticsController.java:59)
    at com.crashlytics.android.core.CrashlyticsController$6.call(CrashlyticsController.java:292)
    at com.crashlytics.android.core.CrashlyticsController$6.call(CrashlyticsController.java:285)
    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:761)

    #28. pool-1-thread-1
    at java.lang.Object.wait(Object.java)
    at java.lang.Thread.parkFor$(Thread.java:2127)
    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:761)

    #29. UnityChoreographer
    at android.os.MessageQueue.nativePollOnce(MessageQueue.java)
    at android.os.MessageQueue.next(MessageQueue.java:323)
    at android.os.Looper.loop(Looper.java:139)
    at android.os.HandlerThread.run(HandlerThread.java:61)

    #30. AsyncTask #2
    at java.lang.Object.wait(Object.java)
    at java.lang.Thread.parkFor$(Thread.java:2127)
    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:761)


    These are the devices we have seen mostly be affected:

    Galaxy S7
    SM-A720F
    Galaxy J5
    Galaxy S6 Active
    Galaxy S5
    Galaxy Tab3 Lite 7.0
    SM-N950F
    Galaxy Tab3 8.0
    Galaxy J1(2016)
    SM-J106B
    Moto G (5) Plus
    Moto G (5S) Plus
    ONEPLUS A5000
    HTC One Google Play edition
    HUAWEI (unknown models)

    I will try downgrading Unity IAP to a previous version to see if that helps.
     
  5. unityjingyao

    unityjingyao

    Unity Technologies

    Joined:
    Feb 20, 2017
    Posts:
    103
    Hi,
    Thank you so much for sending me this information!
    This crash might be caused by google play in-app billing service. It would return a null value in some circumstance.
    We're going to add more check for the returned bundle by google play service. The fix should be included in next release.
    I apologize for any inconvenience this issue has caused.
    Thank you again for reporting this issue and your patience.
     
  6. MBG-Andrew

    MBG-Andrew

    Joined:
    Jun 1, 2018
    Posts:
    1
    Is this being tracked on the issue tracker?
     
  7. cfkhanh

    cfkhanh

    Joined:
    Dec 3, 2014
    Posts:
    2
    Hi,
    We have the same issues. If you need log to investigate the bugs, please see the attachment file.
     
  8. faisalimrann

    faisalimrann

    Joined:
    Jan 3, 2017
    Posts:
    1
    hi,
    I have same issue. any solution ?
     
  9. MorenoBralts

    MorenoBralts

    Joined:
    May 23, 2017
    Posts:
    15
    We are also having some users with this type of crash, happened along with the 1.19 IAP update. Will the next release be a bugfix release and will it release soon? I'm considering downgrading to 1.17
     
  10. JeffDUnity3D

    JeffDUnity3D

    Unity Technologies

    Joined:
    May 2, 2017
    Posts:
    1,613
    There is no specific time frame, but hopefully within 2-4 weeks for the next release.