首页 > 解决方案 > 网络管理器抛出 D-Bus 故障:变体类型不匹配匹配:变体(Iter(UInt32))

问题描述

当我尝试使用 Rust 中的network-manager crate在 dbus 上枚举 WiFi 连接时,在带有 Raspbian Stretch 9.4 和 network-manager v1.6.2 的 Raspberry Pi 3B+ 上编译和运行时,NetworkManager::get_connections抛出D-Bus failure: Variant type does not match match: Variant(Iter(UInt32)).

nmcli通过命令行工作正常,所以我怀疑网络管理器版本和 dbus 之间不兼容,所以我尝试通过手动克隆 repos 升级到最新的dbus="0.5.4"和 `network-manager="0.11.2" crates,但同样的错误。也许我需要降级其中一些组件?

这是我的全部代码:

extern crate network_manager;

use network_manager::{
    AccessPoint, AccessPointCredentials, Connection, ConnectionState, Connectivity, Device,
    DeviceType, NetworkManager, Security, ServiceState,
};

fn main() {
    let manager = NetworkManager::new();
    let connections = manager.get_connections().unwrap();
}

标签: rustdbusnetworkmanager

解决方案


推荐阅读