You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter构建失败:razorpay_flutter与paytm_allinonesdk中Registrar未找到

解决Flutter集成支付插件时的Registrar找不到错误

错误信息

error: cannot find symbol
import io.flutter.plugin.common.PluginRegistry.Registrar;
                                              ^
symbol:   class Registrar
location: interface PluginRegistry

public static void registerWith(Registrar registrar) {
                            ^
symbol:   class Registrar
location: class RazorpayFlutterPlugin

复现步骤

  • 在pubspec.yaml中添加razorpay_flutter: ^1.3.7和paytm_allinonesdk: ^1.2.8
  • 执行flutter pub get
  • 执行flutter build apk触发错误

问题原因

Flutter 3.20及以上版本移除了PluginRegistry.Registrar接口,改用FlutterPlugin接口实现插件注册。你使用的旧版本支付插件仍依赖废弃的Registrar,导致编译失败。

解决方案

方案1:升级插件到兼容版本

将插件版本更新为适配Flutter 3.20+的最新稳定版,示例pubspec.yaml配置:

dependencies:
  razorpay_flutter: ^2.3.0
  paytm_allinonesdk: ^1.5.0

执行flutter clean && flutter pub get后重新构建项目。

方案2:手动修改插件代码适配新接口

如果无法升级插件,可手动修改插件的Android端代码:

  1. 找到插件的Android实现文件(如razorpay_flutter的RazorpayFlutterPlugin.java,路径通常为android/src/main/java/com/razorpay/flutter/)
  2. 替换原有代码为适配FlutterPlugin的实现:
    import io.flutter.embedding.engine.plugins.FlutterPlugin;
    import io.flutter.plugin.common.MethodCall;
    import io.flutter.plugin.common.MethodChannel;
    import io.flutter.plugin.common.MethodChannel.MethodCallHandler;
    import io.flutter.plugin.common.MethodChannel.Result;
    import io.flutter.embedding.engine.plugins.FlutterPlugin.FlutterPluginBinding;
    
    public class RazorpayFlutterPlugin implements FlutterPlugin, MethodCallHandler {
      private MethodChannel channel;
    
      @Override
      public void onAttachedToEngine(FlutterPluginBinding flutterPluginBinding) {
        channel = new MethodChannel(flutterPluginBinding.getBinaryMessenger(), "razorpay_flutter");
        channel.setMethodCallHandler(this);
      }
    
      @Override
      public void onMethodCall(MethodCall call, Result result) {
        // 保留原有业务逻辑
      }
    
      @Override
      public void onDetachedFromEngine(FlutterPluginBinding binding) {
        channel.setMethodCallHandler(null);
      }
    }
    
  3. 对paytm_allinonesdk的对应文件执行相同修改
  4. 执行flutter clean && flutter pub get && flutter build apk

内容的提问来源于stack exchange,提问作者Hammad Khan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 04:25:07