मैं निम्नलिखित त्रुटि प्राप्त करके अपने स्पंदन ऐप में EventChannel को लागू करने का प्रयास कर रहा हूं:

सेवा पुस्तकालय द्वारा पकड़ा गया अपवाद मैं

चैनल com.checkin.beacon.entered.beacons पर प्लेटफ़ॉर्म स्ट्रीम को सक्रिय करते समय निम्न प्लेटफ़ॉर्म अपवाद को फेंक दिया गया था:

PlatformException (त्रुटि, गैर-शून्य के रूप में निर्दिष्ट पैरामीटर शून्य है: विधि kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull, पैरामीटर args, शून्य)

यहाँ मेरा कोड है:

स्पंदन पक्ष:

static const _enteredBeaconsEvent = const EventChannel("com.checkin.beacon.entered.beacons");

static void initialize () {
    _enteredBeaconsEvent.receiveBroadcastStream().listen((data) {
      print("data= $data");
    });
}

एंड्रॉइड नेटिव (कोटलिन) पर, कोड है:

override fun configureFlutterEngine(@NonNull flutterEngine: FlutterEngine) {
        GeneratedPluginRegistrant.registerWith(flutterEngine)

        EventChannel(flutterEngine.dartExecutor.binaryMessenger, "com.checkin.beacon.entered.beacons").setStreamHandler(object : EventChannel.StreamHandler {
            override fun onListen(args: Any, events: EventSink) {
                Log.d(TAG, "adding listener")

                events.success(true)
            }

            override fun onCancel(args: Any) {
                Log.d(TAG, "cancelling listener")
            }
        })
    }

मैंने बहुत खोज की है लेकिन समस्या का पता लगाने में असमर्थ हूं।

3
kashif789us 30 अप्रैल 2020, 14:28

1 उत्तर

सबसे बढ़िया उत्तर

डिफ़ॉल्ट रूप से कोटलिन में सभी चर और पैरामीटर गैर-शून्य हैं। यदि आप विधि के लिए एक शून्य पैरामीटर पास करना चाहते हैं, तो आपको इसके प्रकार में ? जोड़ना चाहिए, उदाहरण के लिए:

override fun onListen(args: Any?, events: EventSink?) {...}

तो, आपका अंतिम कोड इस तरह दिखेगा:

    override fun configureFlutterEngine(@NonNull flutterEngine: FlutterEngine) {
        GeneratedPluginRegistrant.registerWith(flutterEngine)

        EventChannel(flutterEngine.dartExecutor.binaryMessenger, "com.checkin.beacon.entered.beacons").setStreamHandler(object : EventChannel.StreamHandler {
            override fun onListen(args: Any?, events: EventSink?) {
                Log.d(TAG, "adding listener")

                events.success(true)
            }

            override fun onCancel(args: Any?) {
                Log.d(TAG, "cancelling listener")
            }
        })
    }
4
med benzekri 15 अक्टूबर 2021, 08:57