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
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)
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)
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)
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)
at dalvik.system.VMRuntime.runHeapTasks(VMRuntime.java)
at java.lang.Daemons$HeapTaskDaemon.run(Daemons.java:433)
at java.lang.Thread.run(Thread.java:761)
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)
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)
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)
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)
at java.lang.Object.wait(Object.java)
at java.lang.Daemons$ReferenceQueueDaemon.run(Daemons.java:150)
at java.lang.Thread.run(Thread.java:761)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
`
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.
Most helpful comment
No, this issue sometimes occurs, but not often