在 IOS 上完全正常,但在 Android(模拟器和设备)上永远不会返回 - 我尝试在 mainActivity.kt 文件中设置 mainActivity 来扩展 FlutterFragmentActivity,但没有成功。
void checkIfNativePayReady() async {
print('started to check if native pay ready');
bool deviceSupportNativePay = await StripePayment.deviceSupportsNativePay(); // never returns
bool isNativeReady = await StripePayment.canMakeNativePayPayments(
['american_express', 'visa', 'maestro', 'master_card']); // never returns
isNativeReady
? createPaymentMethodNative()
: createPaymentMethod();
}
这是日志;
E/flutter (13783): [ERROR:flutter/lib/ui/ui_dart_state.cc(186)] Unhandled Exception: PlatformException(error, null, null, java.lang.IllegalArgumentException
E/flutter (13783): at com.gettipsi.stripe.util.ArgCheck.isTrue(ArgCheck.java:39)
E/flutter (13783): at com.gettipsi.stripe.PayFlow.getEnvironment(PayFlow.java:44)
E/flutter (13783): at com.gettipsi.stripe.GoogleApiPayFlowImpl.createPaymentsClient(GoogleApiPayFlowImpl.java:64)
E/flutter (13783): at com.gettipsi.stripe.GoogleApiPayFlowImpl.isReadyToPay(GoogleApiPayFlowImpl.java:77)
E/flutter (13783): at com.gettipsi.stripe.GoogleApiPayFlowImpl.deviceSupportsAndroidPay(GoogleApiPayFlowImpl.java:218)
E/flutter (13783): at com.gettipsi.stripe.StripeModule.deviceSupportsAndroidPay(StripeModule.java:132)
E/flutter (13783): at de.jonasbark.stripepayment.StripePaymentPlugin.onMethodCall(StripePaymentPlugin.kt:23)
E/flutter (13783): at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:233)
E/flutter (13783): at io.flutter.embedding.engine.dart.DartMessenger.handleMessageFromDart(DartMessenger.java:85)
E/flutter (13783): at io.flutter.embedding.engine.FlutterJNI.handlePlatformMessage(FlutterJNI.java:818)
E/flutter (13783): at android.os.MessageQueue.nativePollOnce(Native Method)
E/flutter (13783): at android.os.MessageQueue.next(MessageQueue.java:363)
E/flutter (13783): at android.os.Looper.loop(Looper.java:173)
E/flutter (13783): at android.app.ActivityThread.main(ActivityThread.java:8178)
E/flutter (13783): at java.lang.reflect.Method.invoke(Native Method)
E/flutter (13783): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513)
E/flutter (13783): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1101)
E/flutter (13783): )
E/flutter (13783): #0 StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:581:7)
E/flutter (13783): #1 MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:158:18)
E/flutter (13783): asynchronous suspension
E/flutter (13783): #2 _payViewState.checkIfNativePayReady (package:leaf_app/VIEWS/stripe/pay.dart:30:35)
E/flutter (13783): asynchronous suspension