Stripe-android: CustomerSession without initialization

Created on 30 Apr 2018  路  10Comments  路  Source: stripe/stripe-android

Hi, I have your library in project and got the issue. Stripe work well almost on all devices but i've got strange bug in crashlytics that cause stripe. How can i fix it?

Here is the stacktrace
`# Date: 2018-04-27T14:48:00Z

OS Version: 7.1.1

Device: Z835

RAM Free: 24.5%

Disk Free: 20.2%

0. Crashed: main

   at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2697)
   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2758)
   at android.app.ActivityThread.-wrap12(ActivityThread.java)
   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1509)
   at android.os.Handler.dispatchMessage(Handler.java:102)
   at android.os.Looper.loop(Looper.java:163)
   at android.app.ActivityThread.main(ActivityThread.java:6228)
   at java.lang.reflect.Method.invoke(Method.java)
   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)

--

Fatal Exception: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.myapp/com.stripe.android.view.PaymentMethodsActivity}: java.lang.IllegalStateException: Attempted to get instance of CustomerSession without initialization.
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2697)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2758)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1509)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:163)
at android.app.ActivityThread.main(ActivityThread.java:6228)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)

Caused by java.lang.IllegalStateException: Attempted to get instance of CustomerSession without initialization.
at com.stripe.android.CustomerSession.getInstance(Unknown Source)
at com.stripe.android.view.PaymentMethodsActivity.initializeCustomerSourceData(Unknown Source)
at com.stripe.android.view.PaymentMethodsActivity.onCreate(Unknown Source)
at android.app.Activity.performCreate(Activity.java:6742)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1122)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2650)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2758)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1509)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:163)
at android.app.ActivityThread.main(ActivityThread.java:6228)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)

0. Crashed: main

   at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2697)
   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2758)
   at android.app.ActivityThread.-wrap12(ActivityThread.java)
   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1509)
   at android.os.Handler.dispatchMessage(Handler.java:102)
   at android.os.Looper.loop(Looper.java:163)
   at android.app.ActivityThread.main(ActivityThread.java:6228)
   at java.lang.reflect.Method.invoke(Method.java)
   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)

1. 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 com.google.android.gms.common.BlockingServiceConnection.getServiceWithTimeout(Unknown Source)
   at com.google.android.gms.ads.identifier.AdvertisingIdClient.zza(Unknown Source)
   at com.google.android.gms.ads.identifier.AdvertisingIdClient.zza(Unknown Source)
   at com.google.android.gms.ads.identifier.AdvertisingIdClient.getAdvertisingIdInfo(Unknown Source)
   at java.lang.reflect.Method.invoke(Method.java)
   at com.facebook.internal.Utility.isNullOrEmpty(Unknown Source)
   at com.facebook.internal.AttributionIdentifiers.getAndroidIdViaReflection(Unknown Source)
   at com.facebook.internal.AttributionIdentifiers.getAndroidId(Unknown Source)
   at com.facebook.internal.AttributionIdentifiers.getAttributionIdentifiers(Unknown Source)
   at com.facebook.FacebookSdk.isDebugEnabled(Unknown Source)
   at com.facebook.FacebookSdk$4.run(Unknown Source)
   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)

2. 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.enableExceptionHandling(Unknown Source)
   at com.crashlytics.android.core.CrashlyticsController.enableExceptionHandling(Unknown Source)
   at com.crashlytics.android.core.CrashlyticsController.enableExceptionHandling(Unknown Source)
   at com.crashlytics.android.core.CrashlyticsController$7.call(Unknown Source)
   at com.crashlytics.android.core.CrashlyticsController$7.call(Unknown Source)
   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(Unknown Source)
   at io.fabric.sdk.android.services.common.BackgroundPriorityRunnable.run(Unknown Source)
   at java.lang.Thread.run(Thread.java:761)

3. 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)

4. 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 com.google.android.gms.common.BlockingServiceConnection.getServiceWithTimeout(Unknown Source)
   at com.google.android.gms.ads.identifier.AdvertisingIdClient.zza(Unknown Source)
   at com.google.android.gms.ads.identifier.AdvertisingIdClient.zza(Unknown Source)
   at com.google.android.gms.ads.identifier.AdvertisingIdClient.getAdvertisingIdInfo(Unknown Source)
   at java.lang.reflect.Method.invoke(Method.java)
   at com.facebook.internal.Utility.isNullOrEmpty(Unknown Source)
   at com.facebook.internal.AttributionIdentifiers.getAndroidIdViaReflection(Unknown Source)
   at com.facebook.internal.AttributionIdentifiers.getAndroidId(Unknown Source)
   at com.facebook.internal.AttributionIdentifiers.getAttributionIdentifiers(Unknown Source)
   at com.facebook.FacebookSdk.isDebugEnabled(Unknown Source)
   at com.facebook.FacebookSdk$4.run(Unknown Source)
   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. Answers Events Handler1

   at com.android.org.conscrypt.NativeCrypto.SSL_do_handshake(NativeCrypto.java)
   at com.android.org.conscrypt.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:357)
   at com.android.okhttp.Connection.connectTls(Connection.java:235)
   at com.android.okhttp.Connection.connectSocket(Connection.java:199)
   at com.android.okhttp.Connection.connect(Connection.java:172)
   at com.android.okhttp.Connection.connectAndSetOwner(Connection.java:367)
   at com.android.okhttp.OkHttpClient$1.connectAndSetOwner(OkHttpClient.java:130)
   at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:330)
   at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:247)
   at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:457)
   at com.android.okhttp.internal.huc.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:126)
   at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getOutputStream(HttpURLConnectionImpl.java:257)
   at com.android.okhttp.internal.huc.DelegatingHttpsURLConnection.getOutputStream(DelegatingHttpsURLConnection.java:218)
   at com.android.okhttp.internal.huc.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java)
   at io.fabric.sdk.android.services.network.HttpRequest.openOutput(Unknown Source)
   at io.fabric.sdk.android.services.network.HttpRequest.startPart(Unknown Source)
   at io.fabric.sdk.android.services.network.HttpRequest.addPathSeparator(Unknown Source)
   at io.fabric.sdk.android.services.network.HttpRequest.addPathSeparator(Unknown Source)
   at com.crashlytics.android.answers.SessionAnalyticsFilesSender.send(Unknown Source)
   at com.crashlytics.android.answers.AnswersRetryFilesSender.build(Unknown Source)
   at com.crashlytics.android.answers.EnabledSessionAnalyticsManagerStrategy.setAnalyticsSettingsData(Unknown Source)
   at com.crashlytics.android.answers.AnswersEventsHandler$3.run(Unknown Source)
   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 io.fabric.sdk.android.services.common.ExecutorUtils$1$1.onRun(Unknown Source)
   at io.fabric.sdk.android.services.common.BackgroundPriorityRunnable.run(Unknown Source)
   at java.lang.Thread.run(Thread.java:761)

6. 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)

7. RealmFinalizingDaemon

   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 io.realm.internal.FinalizerRunnable.run(Unknown Source)
   at java.lang.Thread.run(Thread.java:761)

8. 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)

9. 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.FutureTask.awaitDone(FutureTask.java:421)
   at java.util.concurrent.FutureTask.get(FutureTask.java:163)
   at com.crashlytics.android.core.CrashlyticsBackgroundWorker.submitAndWait(Unknown Source)
   at com.crashlytics.android.core.CrashlyticsCore.markInitializationStarted(Unknown Source)
   at com.crashlytics.android.core.CrashlyticsCore.doInBackground(Unknown Source)
   at com.crashlytics.android.core.CrashlyticsCore.doInBackground(Unknown Source)
   at io.fabric.sdk.android.InitializationTask.onPreExecute(Unknown Source)
   at io.fabric.sdk.android.InitializationTask.onPreExecute(Unknown Source)
   at io.fabric.sdk.android.services.concurrency.AsyncTask$2.call(Unknown Source)
   at java.util.concurrent.FutureTask.run(FutureTask.java:237)
   at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:428)
   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:761)

10. 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.take(Unknown Source)
   at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.peek(Unknown Source)
   at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(Unknown Source)
   at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(Unknown Source)
   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)

11. AsyncTask #2

   at android.os.BinderProxy.transactNative(Binder.java)
   at android.os.BinderProxy.transact(Binder.java:615)
   at android.app.ActivityManagerProxy.getContentProvider(ActivityManagerNative.java:4207)
   at android.app.ActivityThread.acquireProvider(ActivityThread.java:5576)
   at android.app.ContextImpl$ApplicationContentResolver.acquireUnstableProvider(ContextImpl.java:2314)
   at android.content.ContentResolver.acquireUnstableProvider(ContentResolver.java:1520)
   at android.content.ContentResolver.query(ContentResolver.java:518)
   at android.content.ContentResolver.query(ContentResolver.java:475)
   at com.facebook.internal.NativeProtocol.validateServiceIntent(Unknown Source)
   at com.facebook.internal.NativeProtocol.validateActivityIntent(Unknown Source)
   at com.facebook.internal.NativeProtocol$NativeAppInfo.getPackage(Unknown Source)
   at com.facebook.internal.NativeProtocol$NativeAppInfo.getPackage(Unknown Source)
   at com.facebook.internal.NativeProtocol$1.run(Unknown Source)
   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)

12. pool-6-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)

13. 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.take(Unknown Source)
   at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.peek(Unknown Source)
   at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(Unknown Source)
   at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(Unknown Source)
   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)

14. Measurement Worker

   at java.lang.Object.wait(Object.java)
   at java.lang.Object.wait(Object.java:407)
   at com.google.android.gms.internal.measurement.zzgk.run(Unknown Source)

15. pool-3-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)

16. 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.take(Unknown Source)
   at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.peek(Unknown Source)
   at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(Unknown Source)
   at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(Unknown Source)
   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. 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)

18. 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)

19. Thread-9

   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 com.google.android.gms.common.BlockingServiceConnection.getServiceWithTimeout(Unknown Source)
   at com.google.android.gms.ads.identifier.AdvertisingIdClient.zza(Unknown Source)
   at com.google.android.gms.ads.identifier.AdvertisingIdClient.zza(Unknown Source)
   at com.google.android.gms.ads.identifier.AdvertisingIdClient.getAdvertisingIdInfo(Unknown Source)
   at java.lang.reflect.Method.invoke(Method.java)
   at io.fabric.sdk.android.services.common.AdvertisingInfoReflectionStrategy.getInfo(Unknown Source)
   at io.fabric.sdk.android.services.common.AdvertisingInfoReflectionStrategy.getAdvertisingId(Unknown Source)
   at io.fabric.sdk.android.services.common.AdvertisingInfoReflectionStrategy.isGooglePlayServiceAvailable(Unknown Source)
   at io.fabric.sdk.android.services.common.AdvertisingInfoProvider.getAdvertisingInfoFromStrategies(Unknown Source)
   at io.fabric.sdk.android.services.common.AdvertisingInfoProvider.getAdvertisingInfo(Unknown Source)
   at io.fabric.sdk.android.services.common.AdvertisingInfoProvider$1.onRun(Unknown Source)
   at io.fabric.sdk.android.services.common.BackgroundPriorityRunnable.run(Unknown Source)
   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.LinkedBlockingQueue.poll(LinkedBlockingQueue.java:438)
   at com.google.android.gms.common.BlockingServiceConnection.getServiceWithTimeout(Unknown Source)
   at com.google.android.gms.ads.identifier.AdvertisingIdClient.zza(Unknown Source)
   at com.google.android.gms.ads.identifier.AdvertisingIdClient.zza(Unknown Source)
   at com.google.android.gms.ads.identifier.AdvertisingIdClient.getAdvertisingIdInfo(Unknown Source)
   at java.lang.reflect.Method.invoke(Method.java)
   at com.facebook.internal.Utility.isNullOrEmpty(Unknown Source)
   at com.facebook.internal.AttributionIdentifiers.getAndroidIdViaReflection(Unknown Source)
   at com.facebook.internal.AttributionIdentifiers.getAndroidId(Unknown Source)
   at com.facebook.internal.AttributionIdentifiers.getAttributionIdentifiers(Unknown Source)
   at com.facebook.appevents.AppEventCollection.getEventCount(Unknown Source)
   at com.facebook.appevents.AppEventCollection.addPersistedEvents(Unknown Source)
   at com.facebook.appevents.AppEventQueue$4.run(Unknown Source)
   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:761)

21. pool-4-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)

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.take(Unknown Source)
   at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.peek(Unknown Source)
   at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(Unknown Source)
   at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(Unknown Source)
   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)

`

Most helpful comment

@OleksandrGrument Did you ever find out what happened here? I had the exact same crash

No, this issue sometimes occurs, but not often

All 10 comments

Hi! Superficially, it looks like you need to initialize the customer session. More looks are here: https://stripe.com/docs/mobile/android/standard

You'll be best served by reaching out to [email protected] :)

@OleksandrGrument Did you ever find out what happened here? I had the exact same crash

@OleksandrGrument Did you ever find out what happened here? I had the exact same crash

No, this issue sometimes occurs, but not often

same here. it shows up in crashlytics, but we can't reproduce it. we're using tipsi-stripe and react native. no idea where to even begin to look for this code path, being all third party.

I am also getting this issue. Out of all of the different devices that are using this code in my app, it only seems to crash for Android version 7.1.1. So it seems like there is an underlying issue for that OS.

Still out there. And +1 on 7.1.1...

https://github.com/stripe/stripe-android/issues/773#issuecomment-501495024

Don't call customerSession.getInstance() after CustomerSession.initCustomerSession() directly and even though it is inside the createEphemeralKey() function

I tried to add sleep time to my code between them and the issue not happened 馃!!

@abdullahayyad what Stripe Android SDK version are you using? Can you provide sample code?

@mshafrir-stripe the SDK version is 28 and the stripe library version is 10.2.1

@abdullahayyad this is happening because CustomerSession#initCustomerSession() creates an EphemeralKeyManager, which by default calls createEphemeralKey(). You should either remove your call to CustomerSession#getInstance() from inside your EphemeralKeyProvider implementation (I'm actually curious why you need to do this?), or use the version of CustomerSession#initCustomerSession() that accepts a shouldPrefetchEphemeralKey argument, and set it to false.

Was this page helpful?
0 / 5 - 0 ratings