Передача параметра в метод RequestScan службы Network Manager

Я хочу создать кортеж массива словаря для передачи аргумента методу RequestScan (параметры IN {sv}). Я пишу код, как показано ниже.

      /* Create empty dictionary */
GVariantBuilder *b;
GVariant *option;
b = g_variant_builder_new(G_VARIANT_TYPE("a{sv}"));
option = g_variant_builder_end (b);

/* Start to scan */
dbusRet = g_dbus_proxy_call_sync(wIfProxy, 
                                "RequestScan", 
                                g_variant_new("(a{sv})", option),
                                G_DBUS_CALL_FLAGS_NONE, 
                                -1, 
                                NULL, 
                                &error);

Я могу построить код, но при запуске программы выводится ошибка, как показано ниже.

      (process:35140): GLib-CRITICAL **: 21:45:35.337: g_variant_builder_end: assertion 'ensure_valid_builder (builder)' failed

(process:35140): GLib-CRITICAL **: 21:45:35.337: g_variant_get_type: assertion 'value != NULL' failed

(process:35140): GLib-CRITICAL **: 21:45:35.337: g_variant_type_is_array: assertion 'g_variant_type_check (type)' failed

(process:35140): GLib-CRITICAL **: 21:45:35.337: g_variant_get_type_string: assertion 'value != NULL' failed

(process:35140): GLib-ERROR **: 21:45:35.337: g_variant_new: expected array GVariantBuilder but the built value has type '(null)'

Не могли бы вы сказать мне, в чем ошибка в реализации?

0 ответов

Другие вопросы по тегам