缺少插件异常(在通道 razorpay_flutter 上打开的方法找不到实现)


Reloaded 7 of 542 libraries in 1,099ms.
E/flutter ( 1062): [ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: MissingPluginException(No implementation found for method open on channel razorpay_flutter)
[38;5;244mE/flutter ( 1062): #0      MethodChannel.invokeMethod[39;49m
E/flutter ( 1062): <asynchronous suspension>
[38;5;248mE/flutter ( 1062): #1      Razorpay.open    (package:razorpay_flutter/razorpay_flutter.dart:48:35)[39;49m
[38;5;248mE/flutter ( 1062): #2      _BuyBidsState.openCheckout[39;49m
[38;5;248mE/flutter ( 1062): #3      _BuyBidsState.getBidsData.<anonymous closure>[39;49m
[38;5;244mE/flutter ( 1062): #4      _InkResponseState._handleTap[39;49m
[38;5;244mE/flutter ( 1062): #5      _InkResponseState.build.<anonymous closure>[39;49m        
[38;5;244mE/flutter ( 1062): #6      GestureRecognizer.invokeCallback[39;49m
[38;5;244mE/flutter ( 1062): #7      TapGestureRecognizer.handleTapUp[39;49m
[38;5;244mE/flutter ( 1062): #8      BaseTapGestureRecognizer._checkUp[39;49m
[38;5;244mE/flutter ( 1062): #9      BaseTapGestureRecognizer.acceptGesture[39;49m
[38;5;244mE/flutter ( 1062): #10     GestureArenaManager.sweep[39;49m
[38;5;244mE/flutter ( 1062): #11     GestureBinding.handleEvent[39;49m
[38;5;244mE/flutter ( 1062): #12     GestureBinding.dispatchEvent[39;49m
[38;5;244mE/flutter ( 1062): #13     GestureBinding._handlePointerEvent[39;49m
[38;5;244mE/flutter ( 1062): #14     GestureBinding._flushPointerEventQueue[39;49m
[38;5;244mE/flutter ( 1062): #15     GestureBinding._handlePointerDataPacket[39;49m
[38;5;244mE/flutter ( 1062): #16     _rootRunUnary  (dart:async/zone.dart:1138:13)[39;49m
[38;5;244mE/flutter ( 1062): #17     _CustomZone.runUnary  (dart:async/zone.dart:1031:19)    [39;49m
[38;5;244mE/flutter ( 1062): #18     _CustomZone.runUnaryGuarded  (dart:async/zone.dart:933:7)[39;49m
[38;5;244mE/flutter ( 1062): #19     _invoke1  (dart:ui/hooks.dart:273:10)[39;49m
[38;5;244mE/flutter ( 1062): #20     _dispatchPointerDataPacket  (dart:ui/hooks.dart:182:5)[39;49m
E/flutter ( 1062):

我在将剃须刀支付与颤振集成时遇到此错误。我是否正确编写了代码。

@override
void initState() {
super.initState();
_razorpay = Razorpay();
_razorpay.on(Razorpay.EVENT_PAYMENT_SUCCESS, _handlePaymentSuccess);
_razorpay.on(Razorpay.EVENT_PAYMENT_ERROR, _handlePaymentError);
_razorpay.on(Razorpay.EVENT_EXTERNAL_WALLET, _handleExternalWallet);
}
@override
void dispose() {
super.dispose();
_razorpay.clear();
}
void openCheckout() async {
var options = {
'key': 'rzp_test_geinuADCB6Csdb',
'amount': 10*100,
'name': 'BidAnd2Win',
'description': 'Buying Bid to play game',
'prefill': {'contact': '8888888888', 'email': 'test@razorpay.com'},
'external': {
'wallets' : ['paytm'],
}
};
try{
_razorpay.open(options);
}
catch(e) {
debugPrint(e);
}
}
void _handlePaymentSuccess(PaymentSuccessResponse response) {
Fluttertoast.showToast(msg: 'Success' + response.paymentId);
}
void _handlePaymentError(PaymentFailureResponse response) {
Fluttertoast.showToast(msg: 'Failure' + response.code.toString() + " - " + response.message);
}
void _handleExternalWallet(ExternalWalletResponse response) {
Fluttertoast.showToast(msg: 'Sucess Wallet payment' + response.walletName);
}

起初,当为所有这三个方法调用 initState(( 时,我收到错误 [错误:颤振/lib/ui/ui_dart_state.cc(157(]未处理的异常:缺少插件异常(在通道 razorpay_flutter 上打开的方法找不到实现(

然后是第二种方法

[错误:颤振/lib/ui/ui_dart_state.cc(157(] 未处理的异常:缺少插件异常(在通道 razorpay_flutter 上找不到方法重新同步的实现(

对于第三种方法

[错误:颤振/lib/ui/ui_dart_state.cc(157(] 未处理的异常:缺少插件异常(在通道 razorpay_flutter 上找不到方法重新同步的实现(

我也正确地添加了我的razorpay_flutter,但是当我单击按钮并调用方法openCheckout((时,就会丢失插件异常。如何修复这个未经处理的异常错误,我已经在尝试和捕获块中调用了_razorpay.open(选项(

颤振干净,然后重新启动,然后就可以了

我发现它:在此处输入链接描述,它工作得很好。

我在另一个颤振包上遇到了同样的问题。问题的主要原因是PUB GET新包后,使用什么方法通道,需要做后续步骤:

从您的设备卸载该应用程序。 再次重建应用。 这应该可以解决问题。

回滚到版本 1.1.1

或者只是用razorpay_flutter替换现有插件:1.1.1

(确保版本号前没有 ^(

经过几个小时的搜索,我终于设法为此找到了合适的解决方案: 步骤1:在安卓>应用程序中制作 proguard-rules.pro 的文件名 应该是:android/app/proguard-rules.pro 然后将下面的代码粘贴到 proguard-rules.pro 文件中

-keepclassmembers class * {
@android.webkit.JavascriptInterface <methods>;
}
-keepattributes JavascriptInterface
-keepattributes *Annotation*
-dontwarn com.razorpay.**
-keep class com.razorpay.** {*;}
-optimizations !method/inlining/*
-keepclasseswithmembers class * {
public void onPayment*(...);
}

第 2 步: 转到 android>app>build.gradle 并查找 buildTypes 内部构建类型>发布添加一些行

buildTypes {
release {
// TODO: Add your own signing config for the release build.
// Signing with the debug keys for now, so `flutter run --release` works.
signingConfig signingConfigs.release
minifyEnabled false
useProguard false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}

第 3 步(IMP(:使用 https://flutter.dev/docs/deployment/android 检查您的应用是否已完美签名 如果没有,请按照上述网址中的步骤操作

PS:二手razorpay_flutter:1.1.1

我希望这一步能解决现有的问题:)

我遇到了同样的问题,对我来说,它在构建桌面APK或在模拟器上不起作用。但是通过更改最小 sdk 版本 19 在真实设备上工作

最新更新