Flutter MethodChannel 原生通信导致的Reply already submitted问题

尉迟卓
2023-12-01

描述

/System.err( 1327): java.lang.IllegalStateException: Reply already submitted
W/System.err( 1327): 	at io.flutter.embedding.engine.dart.DartMessenger$Reply.reply(DartMessenger.java:139)
W/System.err( 1327): 	at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler$1.success(MethodChannel.java:238)
W/System.err( 1327): 	at com.aimart.retail.MainActivity$2.handleMessage(MainActivity.java:97)
W/System.err( 1327): 	at android.os.Handler.dispatchMessage(Handler.java:103)
W/System.err( 1327): 	at android.os.Looper.loop(Looper.java:238)
W/System.err( 1327): 	at android.app.ActivityThread.main(ActivityThread.java:7798)
W/System.err( 1327): 	at java.lang.reflect.Method.invoke(Native Method)
W/System.err( 1327): 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
W/System.err( 1327): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:995)

原因

Result 对象 重复使用造成的,result.success()或者result.error()只能使用一次,只用一次之后,result就失效了,如果再次使用result上报结果就会报下面的异常

解决方案

仔细检查代码, 仔细审查。

 类似资料: