Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

called Option::unwrap() on a None value #168

Open
SixLib opened this issue Mar 18, 2024 · 3 comments
Open

called Option::unwrap() on a None value #168

SixLib opened this issue Mar 18, 2024 · 3 comments

Comments

@SixLib
Copy link

SixLib commented Mar 18, 2024

ERROR

thread 'main' panicked at .cargo/registry/src/index.crates.io-6f17d22bba15001f/muda-0.12.1/src/platform_impl/macos/mod.rs:906:67:
called `Option::unwrap()` on a `None` value
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
libc++abi: terminating due to uncaught foreign exception
error Command failed with exit code 1.

Menu Code

    // menu.rs
    let menu_bar = Menu::new();
    #[cfg(target_os = "macos")]
    {
        let app_m = Submenu::new("App", true);
        menu_bar.append(&app_m).unwrap();

        let add_menu_item = MenuItem::new("Add", true, Some(Accelerator::new(Some(Modifiers::ALT), Code::KeyC)));
        app_m
            .append_items(&[
                // &add_menu_item,
                &PredefinedMenuItem::about(None, None),
                &PredefinedMenuItem::separator(),
                // &PredefinedMenuItem::services(None),
                // &PredefinedMenuItem::separator(),
                // &PredefinedMenuItem::hide(None),
                // &PredefinedMenuItem::hide_others(None),
                // &PredefinedMenuItem::show_all(None),
                // &PredefinedMenuItem::separator(),
                // &PredefinedMenuItem::quit(None),
            ])
            .unwrap();
    }
    let file_m = Submenu::new("&File", true);
    let edit_m = Submenu::new("&Edit", true);
    let window_m = Submenu::new("&Window", true);

    menu_bar
        .append_items(&[&file_m, &edit_m, &window_m])
        .unwrap();

    // --snip--
    #[cfg(target_os = "windows")]
    menu_bar.init_for_hwnd(window.hwnd() as isize);
    #[cfg(target_os = "linux")]
    menu_bar.init_for_gtk_window(&gtk_window, Some(&vertical_gtk_box));
    #[cfg(target_os = "macos")]
    menu_bar.init_for_nsapp();

lib.rs

pub fn run() {
    // your code here
    let context = tauri::generate_context!();

    tauri::Builder::default()
        .setup(|_app| {
            menu::init();
            Ok(())
        })
        .plugin(tauri_plugin_shell::init())
        .plugin(tauri_plugin_store::Builder::default().build())
        .invoke_handler(tauri::generate_handler![greet])
        .run(context)
        .expect("error while running tauri application");
}
@SixLib
Copy link
Author

SixLib commented Mar 18, 2024

"menu.rs", The problem arises at &PredefinedMenuItem::about(None, None), No problem after removal。

macOS Sonoma, rustc 1.76.0, muda = "0.12.1"

@amrbashir
Copy link
Member

cc @pewsheen

@pewsheen
Copy link
Contributor

Hmm.. The line says it failed to declare MudaMenuItem class, which should not be related to the About item.

Are you calling muda directly in a Tauri project or using the wrapped API that Tauri provides? The code works fine with muda alone.
Could you provide your minimum reproducible repo?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants