square/reader-sdk-android-quickstart

OnErrorNotImplementedException crash in 1.4.4 square library

MrEngineer13 opened this issue · 2 comments

I am using square library 1.4.4 targeting android 30 and this is a new crash, previously square payments worked. When I try to take a payment I get the following crash:

2021-04-08 16:28:54.012 11279-11279 E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.beaconsoftco.dadrivermobile, PID: 11279
io.reactivex.exceptions.OnErrorNotImplementedException: The exception was not handled due to missing onError handler in the subscribe() method call. Further reading: https://github.com/ReactiveX/RxJava/wiki/Error-Handling | java.lang.NoSuchMethodError: No direct method (Lkotlin/coroutines/CoroutineContext;I)V in class Lkotlinx/coroutines/flow/internal/ChannelFlow; or its super classes (declaration of 'kotlinx.coroutines.flow.internal.ChannelFlow' appears in /data/app/~~Ctz1_E6HrZFZOAFDfJvjAA==/com.beaconsoftco.dadrivermobile-BF-cKAraaR_u-46ZHRlN-w==/base.apk!classes7.dex)
at io.reactivex.internal.functions.Functions$OnErrorMissingConsumer.accept(Functions.java:704)
at io.reactivex.internal.functions.Functions$OnErrorMissingConsumer.accept(Functions.java:701)
at io.reactivex.internal.subscribers.LambdaSubscriber.onError(LambdaSubscriber.java:79)
at kotlinx.coroutines.reactive.FlowSubscription.flowProcessing(ReactiveFlow.kt:187)
at kotlinx.coroutines.reactive.FlowSubscription$createInitialContinuation$$inlined$Continuation$1$lambda$1.invoke(ReactiveFlow.kt:175)
at kotlinx.coroutines.reactive.FlowSubscription$createInitialContinuation$$inlined$Continuation$1$lambda$1.invoke(ReactiveFlow.kt:166)
at kotlin.coroutines.intrinsics.IntrinsicsKt__IntrinsicsJvmKt$createCoroutineUnintercepted$$inlined$createCoroutineFromSuspendFunction$IntrinsicsKt__IntrinsicsJvmKt$2.invokeSuspend(IntrinsicsJvm.kt:205)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.internal.DispatchedContinuationKt.resumeCancellableWith(DispatchedContinuation.kt:342)
at kotlinx.coroutines.internal.DispatchedContinuationKt.resumeCancellableWith$default(DispatchedContinuation.kt:263)
at kotlinx.coroutines.intrinsics.CancellableKt.startCoroutineCancellable(Cancellable.kt:18)
at kotlinx.coroutines.reactive.FlowSubscription$createInitialContinuation$$inlined$Continuation$1.resumeWith(Continuation.kt:159)
at kotlinx.coroutines.reactive.FlowSubscription.request(ReactiveFlow.kt:230)
at io.reactivex.internal.subscribers.LambdaSubscriber.request(LambdaSubscriber.java:114)
at io.reactivex.internal.operators.flowable.FlowableInternalHelper$RequestMax.accept(FlowableInternalHelper.java:220)
at io.reactivex.internal.operators.flowable.FlowableInternalHelper$RequestMax.accept(FlowableInternalHelper.java:216)
at io.reactivex.internal.subscribers.LambdaSubscriber.onSubscribe(LambdaSubscriber.java:52)
at kotlinx.coroutines.reactive.FlowAsPublisher.subscribe(ReactiveFlow.kt:160)
at io.reactivex.internal.operators.flowable.FlowableFromPublisher.subscribeActual(FlowableFromPublisher.java:29)
at io.reactivex.Flowable.subscribe(Flowable.java:14935)
at io.reactivex.Flowable.subscribe(Flowable.java:14872)
at io.reactivex.Flowable.subscribe(Flowable.java:14760)
at com.squareup.cdx.payment.RealCardreaderPayments.initialize(RealCardreaderPayments.kt:77)
at com.squareup.cardreaders.CardreadersInitializer.onEnterScope(CardreadersInitializer.kt:36)
at shadow.mortar.MortarScope.register(MortarScope.java:199)
at com.squareup.LoggedInScopeRunner.onEnterScope(LoggedInScopeRunner.java:224)
at shadow.mortar.MortarScope.register(MortarScope.java:199)
at com.squareup.RegisterAppDelegate.onAuthenticated(RegisterAppDelegate.java:520)
at com.squareup.RegisterAppDelegate.lambda$onEnterScope$3$RegisterAppDelegate(RegisterAppDelegate.java:463)
at com.squareup.-$$Lambda$RegisterAppDelegate$vHZZqP35d8MKCMJt3awe2FQpeno.accept(Unknown Source:4)
at io.reactivex.internal.observers.LambdaObserver.onNext(LambdaObserver.java:63)
at com.jakewharton.rxrelay2.BehaviorRelay$BehaviorDisposable.test(BehaviorRelay.java:364)
at com.jakewharton.rxrelay2.BehaviorRelay$BehaviorDisposable.emitNext(BehaviorRelay.java:358)
at com.jakewharton.rxrelay2.BehaviorRelay.accept(BehaviorRelay.java:135)
2021-04-08 16:28:54.013 11279-11279 E/AndroidRuntime: at com.squareup.account.FileBackedAuthenticator.onLoginResponse(FileBackedAuthenticator.kt:168)
at com.squareup.account.FileBackedAuthenticator.loggedIn(FileBackedAuthenticator.kt:119)
at com.squareup.sdk.reader.authorization.ReaderSdkAuthenticator$login$2$2.apply(ReaderSdkAuthenticator.kt:136)
at com.squareup.sdk.reader.authorization.ReaderSdkAuthenticator$login$2$2.apply(ReaderSdkAuthenticator.kt:62)
at io.reactivex.internal.operators.single.SingleMap$MapSingleObserver.onSuccess(SingleMap.java:57)
at io.reactivex.internal.operators.single.SingleMap$MapSingleObserver.onSuccess(SingleMap.java:64)
at io.reactivex.internal.operators.single.SingleMap$MapSingleObserver.onSuccess(SingleMap.java:64)
at io.reactivex.internal.operators.single.SingleCreate$Emitter.onSuccess(SingleCreate.java:67)
at kotlinx.coroutines.rx2.RxSingleCoroutine.onCompleted(RxSingle.kt:59)
at kotlinx.coroutines.AbstractCoroutine.onCompletionInternal(AbstractCoroutine.kt:104)
at kotlinx.coroutines.JobSupport.tryFinalizeSimpleState(JobSupport.kt:294)
at kotlinx.coroutines.JobSupport.tryMakeCompleting(JobSupport.kt:853)
at kotlinx.coroutines.JobSupport.makeCompletingOnce$kotlinx_coroutines_core(JobSupport.kt:825)
at kotlinx.coroutines.AbstractCoroutine.resumeWith(AbstractCoroutine.kt:111)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:246)
at android.app.ActivityThread.main(ActivityThread.java:8506)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:602)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1130)

Per our documentation, we require that you target 29 or earlier. Does it work successfully if you target 29?

@StephenJosey - I'm experiencing something similar here (starting with initializing the SDK, com.squareup.sdk.reader.ReaderSdk.initialize()), but are there any plans to support Android 11 soon? Especially since we're required to target SDK version 30 (Android 11) by this month in order to submit app updates to the Play Store: https://developer.android.com/distribute/best-practices/develop/target-sdk