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

[Bug] Compiles with 1.51, does not compile with 1.53. #877

Closed
gjf2a opened this issue Dec 7, 2022 · 45 comments
Closed

[Bug] Compiles with 1.51, does not compile with 1.53. #877

gjf2a opened this issue Dec 7, 2022 · 45 comments
Labels
bug Something isn't working

Comments

@gjf2a
Copy link

gjf2a commented Dec 7, 2022

Describe the bug

My project is at https://github.com/gjf2a/groundline.

It compiles and runs perfectly well with frb 1.51.0.

It does not compile with frb 1.53.0. I was careful to run flutter pub upgrade and then regenerate the bridge code after upgrading. If I switch back to 1.51.0, it compiles and runs with no trouble whatsoever.

Here is the error message:

Launching lib\main.dart on KFAUWI in debug mode...
Running Gradle task 'assembleDebug'...
lib/bridge_generated.dart:363:7: Error: The non-abstract class 'NativeWire' is missing implementations for these members:
 - FlutterRustBridgeWireBase.drop_dart_object
 - FlutterRustBridgeWireBase.get_dart_object
 - FlutterRustBridgeWireBase.new_dart_opaque
Try to either
 - provide an implementation,
 - inherit an implementation from a superclass or mixin,
 - mark the class as abstract, or
 - provide a 'noSuchMethod' implementation.

class NativeWire implements FlutterRustBridgeWireBase {
      ^^^^^^^^^^
../../AppData/Roaming/Pub/Cache/hosted/pub.dartlang.org/flutter_rust_bridge-1.53.0/lib/src/ffi/stub.dart:31:8: Context: 'FlutterRustBridgeWireBase.drop_dart_object' is defined here.
  void drop_dart_object(int ptr) {
       ^^^^^^^^^^^^^^^^
../../AppData/Roaming/Pub/Cache/hosted/pub.dartlang.org/flutter_rust_bridge-1.53.0/lib/src/ffi/stub.dart:26:10: Context: 'FlutterRustBridgeWireBase.get_dart_object' is defined here.
  Object get_dart_object(int ptr) {
         ^^^^^^^^^^^^^^^
../../AppData/Roaming/Pub/Cache/hosted/pub.dartlang.org/flutter_rust_bridge-1.53.0/lib/src/ffi/stub.dart:36:7: Context: 'FlutterRustBridgeWireBase.new_dart_opaque' is defined here.
  int new_dart_opaque(Object obj) {
      ^^^^^^^^^^^^^^^


FAILURE: Build failed with an exception.

* Where:
Script 'C:\Users\ferrer\flutter\packages\flutter_tools\gradle\flutter.gradle' line: 1159

* What went wrong:
Execution failed for task ':app:compileFlutterBuildDebug'.
> Process 'command 'C:\Users\ferrer\flutter\bin\flutter.bat'' finished with non-zero exit value 1

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 18s
Exception: Gradle task assembleDebug failed with exit code 1

Codegen logs with RUST_LOG=debug environment variable

PS C:\Users\ferrer\AndroidStudioProjects\groundline\native> $env:RUST_LOG='debug'
PS C:\Users\ferrer\AndroidStudioProjects\groundline\native> flutter_rust_bridge_codegen --rust-input src\api.rs --dart-output ..\lib\bridge_generated.dart --dart-decl-output ..\lib\bridge_definitions.dart
[2022-12-07T21:58:25Z DEBUG flutter_rust_bridge_codegen] configs=[Opts { rust_input_path: "C:\\Users\\ferrer\\AndroidStudioProjects\\groundline\\native\\src\\api.rs", dart_output_path: "C:\\Users\\ferrer\\AndroidStudioProjects\\groundline\\native\\..\\lib\\bridge_generated.dart", dart_decl_output_path: Some("C:\\Users\\ferrer\\AndroidStudioProjects\\groundline\\native\\..\\lib\\bridge_definitions.dart"), c_output_path: ["C:\\Users\\ferrer\\AppData\\Local\\Temp\\.tmpG9E0FZ.h"], rust_crate_dir: "C:\\Users\\ferrer\\AndroidStudioProjects\\groundline\\native", rust_output_path: 
"C:\\Users\\ferrer\\AndroidStudioProjects\\groundline\\native\\src\\bridge_generated.rs", class_name: "Native", dart_format_line_length: 80, skip_add_mod_to_lib: false, llvm_path: ["/opt/homebrew/opt/llvm", "/usr/local/opt/llvm", "/usr/lib/llvm-9", "/usr/lib/llvm-10", "/usr/lib/llvm-11", "/usr/lib/llvm-12", "/usr/lib/llvm-13", "/usr/lib/llvm-14", "/usr/lib/", "/usr/lib64/", "C:/Program Files/llvm", "C:/msys64/mingw64"], llvm_compiler_opts: "", manifest_path: "C:\\Users\\ferrer\\AndroidStudioProjects\\groundline\\native\\Cargo.toml", dart_root: Some("C:\\Users\\ferrer\\AndroidStudioProjects\\groundline\\native\\.."), build_runner: true, block_index: BlockIndex(0), skip_deps_check: false, wasm_enabled: false, inline_rust: false }]
[2022-12-07T21:58:26Z DEBUG lib_flutter_rust_bridge_codegen::source_graph] Trying to parse "\\\\?\\C:\\Users\\ferrer\\AndroidStudioProjects\\groundline\\native\\src\\api.rs"
[2022-12-07T21:58:26Z DEBUG lib_flutter_rust_bridge_codegen::source_graph] Trying to parse "\\\\?\\C:\\Users\\ferrer\\AndroidStudioProjects\\groundline\\native\\src\\bridge_generated.rs"
[2022-12-07T21:58:26Z WARN  lib_flutter_rust_bridge_codegen::source_graph] Skipping unresolvable module io (tried \\?\C:\Users\ferrer\AndroidStudioProjects\groundline\native\src\io.rs, \\?\C:\Users\ferrer\AndroidStudioProjects\groundline\native\src\io\mod.rs, \\?\C:\Users\ferrer\AndroidStudioProjects\groundline\native\src\bridge_generated\io.rs, \\?\C:\Users\ferrer\AndroidStudioProjects\groundline\native\src\bridge_generated\io\mod.rs, )
[2022-12-07T21:58:26Z DEBUG lib_flutter_rust_bridge_codegen::parser] parse_function function name: Ident(kmeans_ready)
[2022-12-07T21:58:26Z DEBUG lib_flutter_rust_bridge_codegen::parser] parse_function function name: Ident(training_time)
[2022-12-07T21:58:26Z DEBUG lib_flutter_rust_bridge_codegen::parser] parse_function function name: Ident(intensity_rgba)
[2022-12-07T21:58:26Z DEBUG lib_flutter_rust_bridge_codegen::parser] parse_function function name: Ident(yuv_rgba)
[2022-12-07T21:58:26Z DEBUG lib_flutter_rust_bridge_codegen::parser] parse_function function name: Ident(color_count)
[2022-12-07T21:58:26Z DEBUG lib_flutter_rust_bridge_codegen::parser] parse_function function name: Ident(groundline_sample_overlay)
[2022-12-07T21:58:26Z DEBUG lib_flutter_rust_bridge_codegen::parser] parse_function function name: Ident(start_kmeans_training)
[2022-12-07T21:58:26Z DEBUG lib_flutter_rust_bridge_codegen::parser] parse_function function name: Ident(color_clusterer)
[2022-12-07T21:58:26Z DEBUG lib_flutter_rust_bridge_codegen::parser] parse_function function name: Ident(groundline_k_means)
[2022-12-07T21:58:26Z DEBUG lib_flutter_rust_bridge_codegen::parser] parse_function function name: Ident(get_correlation_flow)
[2022-12-07T21:58:26Z DEBUG lib_flutter_rust_bridge_codegen::parser] parse_function function name: Ident(reset_position_estimate)
[2022-12-07T21:58:26Z DEBUG lib_flutter_rust_bridge_codegen::parser] parse_function function name: Ident(process_sensor_data)
[2022-12-07T21:58:26Z DEBUG lib_flutter_rust_bridge_codegen::parser] parse_function function name: Ident(parse_sensor_data)
[2022-12-07T21:58:26Z DEBUG lib_flutter_rust_bridge_codegen::tools] Guessing toolchain the runner is run into
[2022-12-07T21:58:26Z DEBUG lib_flutter_rust_bridge_codegen::commands] execute command: bin=powershell args="-noprofile -command & \"flutter\" \"--version\"" current_dir=None cmd="powershell" "-noprofile" "-command" "& \"flutter\" \"--version\""
Flutter 3.3.9 • channel stable • https://github.com/flutter/flutter.git
Framework • revision b8f7f1f986 (2 weeks ago) • 2022-11-23 06:43:51 +0900
Engine • revision 8f2221fbef
Tools • Dart 2.18.5 • DevTools 2.15.0
[2022-12-07T21:58:28Z DEBUG lib_flutter_rust_bridge_codegen::commands] command="powershell" "-noprofile" "-command" "& \"flutter\" \"--version\"" stdout= stderr=
[2022-12-07T21:58:28Z DEBUG lib_flutter_rust_bridge_codegen::tools] Checking presence of ffi in dependencies at C:\Users\ferrer\AndroidStudioProjects\groundline\native\..
[2022-12-07T21:58:28Z DEBUG lib_flutter_rust_bridge_codegen::tools] Checking presence of ffi in dependencies at C:\Users\ferrer\AndroidStudioProjects\groundline\native\..
[2022-12-07T21:58:28Z DEBUG lib_flutter_rust_bridge_codegen::tools] Checking presence of ffigen in dev_dependencies at C:\Users\ferrer\AndroidStudioProjects\groundline\native\..
[2022-12-07T21:58:28Z DEBUG lib_flutter_rust_bridge_codegen::tools] Checking presence of ffigen in dev_dependencies at C:\Users\ferrer\AndroidStudioProjects\groundline\native\..
[2022-12-07T21:58:28Z INFO  lib_flutter_rust_bridge_codegen] Picked config: Opts { rust_input_path: "C:\\Users\\ferrer\\AndroidStudioProjects\\groundline\\native\\src\\api.rs", dart_output_path: "C:\\Users\\ferrer\\AndroidStudioProjects\\groundline\\native\\..\\lib\\bridge_generated.dart", dart_decl_output_path: Some("C:\\Users\\ferrer\\AndroidStudioProjects\\groundline\\native\\..\\lib\\bridge_definitions.dart"), c_output_path: ["C:\\Users\\ferrer\\AppData\\Local\\Temp\\.tmpG9E0FZ.h"], rust_crate_dir: "C:\\Users\\ferrer\\AndroidStudioProjects\\groundline\\native", rust_output_path: "C:\\Users\\ferrer\\AndroidStudioProjects\\groundline\\native\\src\\bridge_generated.rs", class_name: "Native", dart_format_line_length: 80, skip_add_mod_to_lib: false, llvm_path: ["/opt/homebrew/opt/llvm", "/usr/local/opt/llvm", "/usr/lib/llvm-9", "/usr/lib/llvm-10", "/usr/lib/llvm-11", "/usr/lib/llvm-12", "/usr/lib/llvm-13", "/usr/lib/llvm-14", "/usr/lib/", "/usr/lib64/", "C:/Program Files/llvm", "C:/msys64/mingw64"], llvm_compiler_opts: "", manifest_path: "C:\\Users\\ferrer\\AndroidStudioProjects\\groundline\\native\\Cargo.toml", dart_root: Some("C:\\Users\\ferrer\\AndroidStudioProjects\\groundline\\native\\.."), build_runner: true, block_index: BlockIndex(0), skip_deps_check: false, wasm_enabled: false, inline_rust: false }
[2022-12-07T21:58:28Z INFO  lib_flutter_rust_bridge_codegen] Phase: Parse source code to AST, then to IR
[2022-12-07T21:58:28Z DEBUG lib_flutter_rust_bridge_codegen::source_graph] Trying to parse "\\\\?\\C:\\Users\\ferrer\\AndroidStudioProjects\\groundline\\native\\src\\api.rs"
[2022-12-07T21:58:28Z DEBUG lib_flutter_rust_bridge_codegen::source_graph] Trying to parse "\\\\?\\C:\\Users\\ferrer\\AndroidStudioProjects\\groundline\\native\\src\\bridge_generated.rs"
[2022-12-07T21:58:28Z WARN  lib_flutter_rust_bridge_codegen::source_graph] Skipping unresolvable module io (tried \\?\C:\Users\ferrer\AndroidStudioProjects\groundline\native\src\io.rs, \\?\C:\Users\ferrer\AndroidStudioProjects\groundline\native\src\io\mod.rs, \\?\C:\Users\ferrer\AndroidStudioProjects\groundline\native\src\bridge_generated\io.rs, \\?\C:\Users\ferrer\AndroidStudioProjects\groundline\native\src\bridge_generated\io\mod.rs, )
[2022-12-07T21:58:28Z DEBUG lib_flutter_rust_bridge_codegen::parser] parse_function function name: Ident(kmeans_ready)
[2022-12-07T21:58:28Z DEBUG lib_flutter_rust_bridge_codegen::parser] parse_function function name: Ident(training_time)
[2022-12-07T21:58:28Z DEBUG lib_flutter_rust_bridge_codegen::parser] parse_function function name: Ident(intensity_rgba)
[2022-12-07T21:58:28Z DEBUG lib_flutter_rust_bridge_codegen::parser] parse_function function name: Ident(yuv_rgba)
[2022-12-07T21:58:28Z DEBUG lib_flutter_rust_bridge_codegen::parser] parse_function function name: Ident(color_count)
[2022-12-07T21:58:28Z DEBUG lib_flutter_rust_bridge_codegen::parser] parse_function function name: Ident(groundline_sample_overlay)
[2022-12-07T21:58:28Z DEBUG lib_flutter_rust_bridge_codegen::parser] parse_function function name: Ident(start_kmeans_training)
[2022-12-07T21:58:28Z DEBUG lib_flutter_rust_bridge_codegen::parser] parse_function function name: Ident(color_clusterer)
[2022-12-07T21:58:28Z DEBUG lib_flutter_rust_bridge_codegen::parser] parse_function function name: Ident(groundline_k_means)
[2022-12-07T21:58:28Z DEBUG lib_flutter_rust_bridge_codegen::parser] parse_function function name: Ident(get_correlation_flow)
[2022-12-07T21:58:28Z DEBUG lib_flutter_rust_bridge_codegen::parser] parse_function function name: Ident(reset_position_estimate)
[2022-12-07T21:58:28Z DEBUG lib_flutter_rust_bridge_codegen::parser] parse_function function name: Ident(process_sensor_data)
[2022-12-07T21:58:28Z DEBUG lib_flutter_rust_bridge_codegen::parser] parse_function function name: Ident(parse_sensor_data)
[2022-12-07T21:58:28Z INFO  lib_flutter_rust_bridge_codegen] Phase: Transform IR
[2022-12-07T21:58:28Z DEBUG lib_flutter_rust_bridge_codegen::transformer] transform_func_input_add_boxed wrap Boxed to field=IrField { ty: StructRef(IrTypeStructRef { name: "ImageData", freezed: false }), name: IrIdent { raw: "img" }, is_final: true, comments: [] }
[2022-12-07T21:58:28Z DEBUG lib_flutter_rust_bridge_codegen::transformer] transform_func_input_add_boxed wrap Boxed to field=IrField { ty: StructRef(IrTypeStructRef { name: "ImageData", freezed: false }), name: IrIdent { raw: "img" }, is_final: true, comments: [] }
[2022-12-07T21:58:28Z DEBUG lib_flutter_rust_bridge_codegen::transformer] transform_func_input_add_boxed wrap Boxed to field=IrField { ty: StructRef(IrTypeStructRef { name: "ImageData", freezed: false }), name: IrIdent { raw: "img" }, is_final: true, comments: [] }
[2022-12-07T21:58:28Z DEBUG lib_flutter_rust_bridge_codegen::transformer] transform_func_input_add_boxed wrap Boxed to field=IrField { ty: StructRef(IrTypeStructRef { name: "ImageData", freezed: false }), name: IrIdent { raw: "img" }, is_final: true, comments: [] }
[2022-12-07T21:58:28Z DEBUG lib_flutter_rust_bridge_codegen::transformer] transform_func_input_add_boxed wrap Boxed to field=IrField { ty: StructRef(IrTypeStructRef { name: "ImageData", freezed: false }), name: IrIdent { raw: "img" }, is_final: true, comments: [] }
[2022-12-07T21:58:28Z DEBUG lib_flutter_rust_bridge_codegen::transformer] transform_func_input_add_boxed wrap Boxed to field=IrField { ty: StructRef(IrTypeStructRef { name: "ImageData", freezed: false }), name: IrIdent { raw: "img" }, is_final: true, comments: [] }
[2022-12-07T21:58:28Z INFO  lib_flutter_rust_bridge_codegen] Phase: Generate Rust code
[2022-12-07T21:58:28Z INFO  lib_flutter_rust_bridge_codegen] Phase: Generate Dart code
[2022-12-07T21:58:28Z DEBUG lib_flutter_rust_bridge_codegen::generator::dart] distinct_input_types=[Delegate(String), Boxed(IrTypeBoxed { exist_in_real_api: false, inner: StructRef(IrTypeStructRef { name: "ImageData", freezed: false }) }), Primitive(I64), StructRef(IrTypeStructRef { name: 
"ImageData", freezed: false }), Primitive(U8), PrimitiveList(IrTypePrimitiveList { primitive: U8 })]
[2022-12-07T21:58:28Z DEBUG lib_flutter_rust_bridge_codegen::generator::dart] distinct_output_types=[Delegate(String), Delegate(ZeroCopyBufferVecPrimitive(U8)), Primitive(Bool), StructRef(IrTypeStructRef { name: "CorrelationFlow", freezed: false }), Primitive(I16), Primitive(I64), StructRef(IrTypeStructRef { name: "SensorData", freezed: false }), Primitive(U8), PrimitiveList(IrTypePrimitiveList { primitive: U8 }), Primitive(Unit)] 
[2022-12-07T21:58:28Z DEBUG lib_flutter_rust_bridge_codegen::commands] execute format_rust path=["C:\\Users\\ferrer\\AndroidStudioProjects\\groundline\\native\\src\\bridge_generated.rs"]
[2022-12-07T21:58:28Z DEBUG lib_flutter_rust_bridge_codegen::commands] execute command: bin=rustfmt args="C:\\Users\\ferrer\\AndroidStudioProjects\\groundline\\native\\src\\bridge_generated.rs" current_dir=None cmd="rustfmt" "C:\\Users\\ferrer\\AndroidStudioProjects\\groundline\\native\\src\\bridge_generated.rs"
[2022-12-07T21:58:29Z DEBUG lib_flutter_rust_bridge_codegen::commands] command="rustfmt" "C:\\Users\\ferrer\\AndroidStudioProjects\\groundline\\native\\src\\bridge_generated.rs" stdout= stderr=
[2022-12-07T21:58:29Z INFO  lib_flutter_rust_bridge_codegen] Phase: Generating Dart bindings for Rust
[2022-12-07T21:58:29Z DEBUG lib_flutter_rust_bridge_codegen::commands] execute cbindgen rust_crate_dir=C:\Users\ferrer\AndroidStudioProjects\groundline\native c_output_path=C:\Users\ferrer\AppData\Local\Temp\.tmpvY1CSd.h
[2022-12-07T21:58:29Z DEBUG lib_flutter_rust_bridge_codegen::commands] cbindgen config: Config {
        header: None,
        includes: [],
        sys_includes: [
            "stdbool.h",
            "stdint.h",
            "stdlib.h",
        ],
        after_includes: None,
        trailer: None,
        include_guard: None,
        pragma_once: false,
        no_includes: true,
        autogen_warning: None,
        include_version: false,
        namespace: None,
        namespaces: None,
        using_namespaces: None,
        braces: SameLine,
        line_length: 100,
        tab_width: 2,
        line_endings: LF,
        language: C,
        cpp_compat: false,
        style: Both,
        sort_by: None,
        usize_is_size_t: false,
        parse: ParseConfig {
            parse_deps: false,
            include: None,
            exclude: [],
            expand: ParseExpandConfig {
                crates: [],
                all_features: false,
                default_features: true,
                features: None,
                profile: Debug,
            },
            clean: false,
            extra_bindings: [],
        },
        export: ExportConfig {
            include: [
                "\"wire_CorrelationFlow\"",
                "\"wire_ImageData\"",
                "\"wire_SensorData\"",
            ],
            exclude: [],
            rename: {},
            pre_body: {},
            body: {},
            prefix: None,
            item_types: [],
            renaming_overrides_prefixing: false,
            mangle: MangleConfig {
                rename_types: None,
                remove_underscores: false,
            },
        },
        macro_expansion: MacroExpansionConfig {
            bitflags: false,
        },
        layout: LayoutConfig {
            packed: None,
            aligned_n: None,
        },
        function: FunctionConfig {
            prefix: None,
            postfix: None,
            must_use: None,
            args: Auto,
            rename_args: None,
            swift_name_macro: None,
            sort_by: None,
            no_return: None,
        },
        structure: StructConfig {
            rename_fields: None,
            derive_constructor: false,
            derive_eq: false,
            derive_neq: false,
            derive_lt: false,
            derive_lte: false,
            derive_gt: false,
            derive_gte: false,
            derive_ostream: false,
            associated_constants_in_body: false,
            must_use: None,
        },
        enumeration: EnumConfig {
            rename_variants: None,
            rename_variant_name_fields: SnakeCase,
            add_sentinel: false,
            prefix_with_name: false,
            derive_helper_methods: false,
            derive_const_casts: false,
            derive_mut_casts: false,
            cast_assert_name: None,
            must_use: None,
            derive_tagged_enum_destructor: false,
            derive_tagged_enum_copy_constructor: false,
            derive_tagged_enum_copy_assignment: false,
            derive_ostream: false,
            enum_class: true,
            private_default_tagged_enum_constructor: false,
        },
        constant: ConstantConfig {
            allow_static_const: true,
            allow_constexpr: true,
            sort_by: None,
        },
        defines: {},
        documentation: true,
        documentation_style: Auto,
        documentation_length: Full,
        pointer: PtrConfig {
            non_null_attribute: None,
        },
        only_target_dependencies: false,
        cython: CythonConfig {
            header: None,
            cimports: {},
        },
    }
[2022-12-07T21:58:29Z DEBUG cbindgen::bindgen::parser] Parsing crate native
[2022-12-07T21:58:29Z INFO  cbindgen::bindgen::parser] Take native::RgbTriple - opaque (Tuples are not supported types.).
[2022-12-07T21:58:29Z INFO  cbindgen::bindgen::parser] Take native::ImageData - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
[2022-12-07T21:58:29Z INFO  cbindgen::bindgen::parser] Take native::SensorData - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
[2022-12-07T21:58:29Z WARN  cbindgen::bindgen::parser] Skip native::UPPER_SAMPLE_HEIGHT - (not `pub`).
[2022-12-07T21:58:29Z WARN  cbindgen::bindgen::parser] Skip native::UPPER_SAMPLE_WIDTH - (not `pub`).
[2022-12-07T21:58:29Z WARN  cbindgen::bindgen::parser] Skip native::LOWER_SAMPLE_WIDTH - (not `pub`).
[2022-12-07T21:58:29Z WARN  cbindgen::bindgen::parser] Skip native::LOWER_SAMPLE_HEIGHT - (not `pub`).
[2022-12-07T21:58:29Z INFO  cbindgen::bindgen::parser] Take native::Rect - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).    
[2022-12-07T21:58:29Z INFO  cbindgen::bindgen::parser] Take native::GroundlineOverlay - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
[2022-12-07T21:58:29Z WARN  cbindgen::bindgen::parser] Skip native::NUM_COLOR_CLUSTERS - (not `pub`).
[2022-12-07T21:58:29Z INFO  cbindgen::bindgen::parser] Take native::CorrelationFlow - opaque (Struct is not marked #[repr(C)] or #[repr(transparent)].).
[2022-12-07T21:58:29Z INFO  cbindgen::bindgen::parser] Take native::DartPort.
[2022-12-07T21:58:29Z INFO  cbindgen::bindgen::parser] Take native::DartPostCObjectFnType.
[2022-12-07T21:58:29Z INFO  cbindgen::bindgen::parser] Take native::store_dart_post_cobject.
[2022-12-07T21:58:29Z INFO  cbindgen::bindgen::parser] Take native::WireSyncReturnStruct.
[2022-12-07T21:58:29Z INFO  cbindgen::bindgen::parser] Take native::wire_kmeans_ready.
[2022-12-07T21:58:29Z INFO  cbindgen::bindgen::parser] Take native::wire_training_time.
[2022-12-07T21:58:29Z INFO  cbindgen::bindgen::parser] Take native::wire_intensity_rgba.
[2022-12-07T21:58:29Z INFO  cbindgen::bindgen::parser] Take native::wire_yuv_rgba.
[2022-12-07T21:58:29Z INFO  cbindgen::bindgen::parser] Take native::wire_color_count.
[2022-12-07T21:58:29Z INFO  cbindgen::bindgen::parser] Take native::wire_groundline_sample_overlay.
[2022-12-07T21:58:29Z INFO  cbindgen::bindgen::parser] Take native::wire_start_kmeans_training.
[2022-12-07T21:58:29Z INFO  cbindgen::bindgen::parser] Take native::wire_color_clusterer.
[2022-12-07T21:58:29Z INFO  cbindgen::bindgen::parser] Take native::wire_groundline_k_means.
[2022-12-07T21:58:29Z INFO  cbindgen::bindgen::parser] Take native::wire_get_correlation_flow.
[2022-12-07T21:58:29Z INFO  cbindgen::bindgen::parser] Take native::wire_reset_position_estimate.
[2022-12-07T21:58:29Z INFO  cbindgen::bindgen::parser] Take native::wire_process_sensor_data.
[2022-12-07T21:58:29Z INFO  cbindgen::bindgen::parser] Take native::wire_parse_sensor_data.
[2022-12-07T21:58:29Z INFO  cbindgen::bindgen::parser] Take native::new_box_autoadd_image_data_0.
[2022-12-07T21:58:29Z INFO  cbindgen::bindgen::parser] Take native::new_uint_8_list_0.
[2022-12-07T21:58:29Z INFO  cbindgen::bindgen::parser] Take native::wire_ImageData.
[2022-12-07T21:58:29Z INFO  cbindgen::bindgen::parser] Take native::wire_uint_8_list.
[2022-12-07T21:58:29Z INFO  cbindgen::bindgen::parser] Take native::free_WireSyncReturnStruct.
[2022-12-07T21:58:29Z WARN  cbindgen::bindgen::ir::cfg] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
[2022-12-07T21:58:29Z WARN  cbindgen::bindgen::ir::cfg] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
[2022-12-07T21:58:29Z WARN  cbindgen::bindgen::ir::cfg] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
[2022-12-07T21:58:29Z WARN  cbindgen::bindgen::ir::cfg] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
[2022-12-07T21:58:29Z WARN  cbindgen::bindgen::ir::cfg] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
[2022-12-07T21:58:29Z WARN  cbindgen::bindgen::ir::cfg] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
[2022-12-07T21:58:29Z WARN  cbindgen::bindgen::ir::cfg] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
[2022-12-07T21:58:29Z WARN  cbindgen::bindgen::ir::cfg] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
[2022-12-07T21:58:29Z WARN  cbindgen::bindgen::ir::cfg] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
[2022-12-07T21:58:29Z WARN  cbindgen::bindgen::ir::cfg] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
[2022-12-07T21:58:29Z WARN  cbindgen::bindgen::ir::cfg] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
[2022-12-07T21:58:29Z WARN  cbindgen::bindgen::ir::cfg] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
[2022-12-07T21:58:29Z WARN  cbindgen::bindgen::ir::cfg] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
[2022-12-07T21:58:29Z WARN  cbindgen::bindgen::ir::cfg] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
[2022-12-07T21:58:29Z WARN  cbindgen::bindgen::ir::cfg] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
[2022-12-07T21:58:29Z WARN  cbindgen::bindgen::ir::cfg] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
[2022-12-07T21:58:29Z WARN  cbindgen::bindgen::ir::cfg] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
[2022-12-07T21:58:29Z WARN  cbindgen::bindgen::ir::cfg] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
[2022-12-07T21:58:29Z WARN  cbindgen::bindgen::ir::cfg] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
[2022-12-07T21:58:29Z WARN  cbindgen::bindgen::ir::cfg] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
[2022-12-07T21:58:29Z WARN  cbindgen::bindgen::ir::cfg] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
[2022-12-07T21:58:29Z WARN  cbindgen::bindgen::ir::cfg] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
[2022-12-07T21:58:29Z WARN  cbindgen::bindgen::ir::cfg] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
[2022-12-07T21:58:29Z WARN  cbindgen::bindgen::ir::cfg] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
[2022-12-07T21:58:29Z WARN  cbindgen::bindgen::ir::cfg] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
[2022-12-07T21:58:29Z WARN  cbindgen::bindgen::ir::cfg] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
[2022-12-07T21:58:29Z WARN  cbindgen::bindgen::ir::cfg] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
[2022-12-07T21:58:29Z WARN  cbindgen::bindgen::ir::cfg] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
[2022-12-07T21:58:29Z WARN  cbindgen::bindgen::ir::cfg] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
[2022-12-07T21:58:29Z WARN  cbindgen::bindgen::ir::cfg] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
[2022-12-07T21:58:29Z WARN  cbindgen::bindgen::ir::cfg] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
[2022-12-07T21:58:29Z WARN  cbindgen::bindgen::ir::cfg] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
[2022-12-07T21:58:29Z WARN  cbindgen::bindgen::ir::cfg] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
[2022-12-07T21:58:29Z WARN  cbindgen::bindgen::ir::cfg] Missing `[defines]` entry for `target_family = "wasm"` in cbindgen config.
[2022-12-07T21:58:29Z DEBUG lib_flutter_rust_bridge_codegen::commands] execute ffigen c_path=C:\Users\ferrer\AppData\Local\Temp\.tmpvY1CSd.h dart_path=C:\Users\ferrer\AppData\Local\Temp\.tmp1fnksy llvm_path=["/opt/homebrew/opt/llvm", "/usr/local/opt/llvm", "/usr/lib/llvm-9", "/usr/lib/llvm-10", "/usr/lib/llvm-11", "/usr/lib/llvm-12", "/usr/lib/llvm-13", "/usr/lib/llvm-14", "/usr/lib/", "/usr/lib64/", "C:/Program Files/llvm", "C:/msys64/mingw64"]
[2022-12-07T21:58:29Z DEBUG lib_flutter_rust_bridge_codegen::commands] ffigen config:
            output: 'C:\Users\ferrer\AppData\Local\Temp\.tmp1fnksy'
            name: 'NativeWire'
            description: 'generated by flutter_rust_bridge'
            headers:
              entry-points:
                - 'C:\Users\ferrer\AppData\Local\Temp\.tmpvY1CSd.h'
              include-directives:
                - 'C:\Users\ferrer\AppData\Local\Temp\.tmpvY1CSd.h'
            comments: false
            preamble: |
              // ignore_for_file: camel_case_types, non_constant_identifier_names, avoid_positional_boolean_parameters, annotate_overrides, constant_identifier_names

            llvm-path:
               - '/opt/homebrew/opt/llvm'
               - '/usr/local/opt/llvm'
               - '/usr/lib/llvm-9'
               - '/usr/lib/llvm-10'
               - '/usr/lib/llvm-11'
               - '/usr/lib/llvm-12'
               - '/usr/lib/llvm-13'
               - '/usr/lib/llvm-14'
               - '/usr/lib/'
               - '/usr/lib64/'
               - 'C:/Program Files/llvm'
               - 'C:/msys64/mingw64'

[2022-12-07T21:58:29Z DEBUG lib_flutter_rust_bridge_codegen::commands] ffigen config_file: NamedTempFile("C:\\Users\\ferrer\\AppData\\Local\\Temp\\.tmp4ruDu5")
[2022-12-07T21:58:29Z DEBUG lib_flutter_rust_bridge_codegen::tools] Guessing toolchain the runner is run into
[2022-12-07T21:58:29Z DEBUG lib_flutter_rust_bridge_codegen::commands] execute command: bin=powershell args="-noprofile -command & \"flutter\" \"pub\" \"run\" \"ffigen\" \"--config\" \"C:\\\\Users\\\\ferrer\\\\AppData\\\\Local\\\\Temp\\\\.tmp4ruDu5\"" current_dir=Some("C:\\Users\\ferrer\\AndroidStudioProjects\\groundline\\native\\..") cmd="powershell" "-noprofile" "-command" "& \"flutter\" \"pub\" \"run\" \"ffigen\" \"--config\" \"C:\\\\Users\\\\ferrer\\\\AppData\\\\Local\\\\Temp\\\\.tmp4ruDu5\""
Running in Directory: 'C:\Users\ferrer\AndroidStudioProjects\groundline'
Input Headers: [C:\Users\ferrer\AppData\Local\Temp\.tmpvY1CSd.h]
Finished, Bindings generated in C:\Users\ferrer\AppData\Local\Temp\.tmp1fnksy
[2022-12-07T21:58:32Z DEBUG lib_flutter_rust_bridge_codegen::commands] command="powershell" "-noprofile" "-command" "& \"flutter\" \"pub\" \"run\" \"ffigen\" \"--config\" \"C:\\\\Users\\\\ferrer\\\\AppData\\\\Local\\\\Temp\\\\.tmp4ruDu5\"" stdout= stderr=
[2022-12-07T21:58:32Z INFO  lib_flutter_rust_bridge_codegen] Phase: Running build_runner
[2022-12-07T21:58:32Z INFO  lib_flutter_rust_bridge_codegen] Phase: Formatting Dart code
[2022-12-07T21:58:32Z DEBUG lib_flutter_rust_bridge_codegen::commands] execute format_dart path=["C:\\Users\\ferrer\\AndroidStudioProjects\\groundline\\native\\..\\lib\\bridge_generated.dart", "C:\\Users\\ferrer\\AndroidStudioProjects\\groundline\\native\\..\\lib\\bridge_definitions.dart"] line_length=80
[2022-12-07T21:58:32Z DEBUG lib_flutter_rust_bridge_codegen::commands] execute command: bin=powershell args="-noprofile -command & \"dart\" \"format\" \"--line-length\" \"80\" \"C:\\\\Users\\\\ferrer\\\\AndroidStudioProjects\\\\groundline\\\\native\\\\..\\\\lib\\\\bridge_generated.dart\" \"C:\\\\Users\\\\ferrer\\\\AndroidStudioProjects\\\\groundline\\\\native\\\\..\\\\lib\\\\bridge_definitions.dart\"" current_dir=None cmd="powershell" "-noprofile" "-command" "& \"dart\" \"format\" \"--line-length\" \"80\" \"C:\\\\Users\\\\ferrer\\\\AndroidStudioProjects\\\\groundline\\\\native\\\\..\\\\lib\\\\bridge_generated.dart\" \"C:\\\\Users\\\\ferrer\\\\AndroidStudioProjects\\\\groundline\\\\native\\\\..\\\\lib\\\\bridge_definitions.dart\""
Formatted C:\\Users\\ferrer\\AndroidStudioProjects\\groundline\\native\\..\\lib\\bridge_generated.dart
Formatted C:\\Users\\ferrer\\AndroidStudioProjects\\groundline\\native\\..\\lib\\bridge_definitions.dart
Formatted 2 files (2 changed) in 0.32 seconds.
[2022-12-07T21:58:34Z DEBUG lib_flutter_rust_bridge_codegen::commands] command="powershell" "-noprofile" "-command" "& \"dart\" \"format\" \"--line-length\" \"80\" \"C:\\\\Users\\\\ferrer\\\\AndroidStudioProjects\\\\groundline\\\\native\\\\..\\\\lib\\\\bridge_generated.dart\" \"C:\\\\Users\\\\ferrer\\\\AndroidStudioProjects\\\\groundline\\\\native\\\\..\\\\lib\\\\bridge_definitions.dart\"" stdout= stderr=
[2022-12-07T21:58:34Z INFO  lib_flutter_rust_bridge_codegen] Success!
[2022-12-07T21:58:34Z INFO  flutter_rust_bridge_codegen] Now go and use it :)
PS C:\Users\ferrer\AndroidStudioProjects\groundline\native>

To Reproduce

Clone https://github.com/gjf2a/groundline

flutter run

Expected behavior

I expected the app to run.

Generated binding code

// AUTO GENERATED FILE, DO NOT EDIT.
// Generated by `flutter_rust_bridge`@ 1.49.0.
// ignore_for_file: non_constant_identifier_names, unused_element, duplicate_ignore, directives_ordering, curly_braces_in_flow_control_structures, unnecessary_lambdas, slash_for_doc_comments, prefer_const_literals_to_create_immutables, implicit_dynamic_list_literal, duplicate_import, unused_import, prefer_single_quotes, prefer_const_constructors, use_super_parameters, always_use_package_imports, annotate_overrides, invalid_use_of_protected_member, constant_identifier_names

import "bridge_definitions.dart";
import 'dart:convert';
import 'dart:async';
import 'package:flutter_rust_bridge/flutter_rust_bridge.dart';

import 'package:meta/meta.dart';
import 'dart:convert';
import 'dart:async';
import 'package:flutter_rust_bridge/flutter_rust_bridge.dart';
import 'package:meta/meta.dart';
import 'dart:ffi' as ffi;

class NativeImpl implements Native {
  final NativePlatform _platform;
  factory NativeImpl(ExternalLibrary dylib) =>
      NativeImpl.raw(NativePlatform(dylib));

  /// Only valid on web/WASM platforms.
  factory NativeImpl.wasm(FutureOr<WasmModule> module) =>
      NativeImpl(module as ExternalLibrary);
  NativeImpl.raw(this._platform);
  Future<bool> kmeansReady({dynamic hint}) =>
      _platform.executeNormal(FlutterRustBridgeTask(
        callFfi: (port_) => _platform.inner.wire_kmeans_ready(port_),
        parseSuccessData: _wire2api_bool,
        constMeta: kKmeansReadyConstMeta,
        argValues: [],
        hint: hint,
      ));

  FlutterRustBridgeTaskConstMeta get kKmeansReadyConstMeta =>
      const FlutterRustBridgeTaskConstMeta(
        debugName: "kmeans_ready",
        argNames: [],
      );

  Future<int> trainingTime({dynamic hint}) =>
      _platform.executeNormal(FlutterRustBridgeTask(
        callFfi: (port_) => _platform.inner.wire_training_time(port_),
        parseSuccessData: _wire2api_i64,
        constMeta: kTrainingTimeConstMeta,
        argValues: [],
        hint: hint,
      ));

  FlutterRustBridgeTaskConstMeta get kTrainingTimeConstMeta =>
      const FlutterRustBridgeTaskConstMeta(
        debugName: "training_time",
        argNames: [],
      );

  Future<Uint8List> intensityRgba(
          {required Uint8List intensities, dynamic hint}) =>
      _platform.executeNormal(FlutterRustBridgeTask(
        callFfi: (port_) => _platform.inner.wire_intensity_rgba(
            port_, _platform.api2wire_uint_8_list(intensities)),
        parseSuccessData: _wire2api_ZeroCopyBuffer_Uint8List,
        constMeta: kIntensityRgbaConstMeta,
        argValues: [intensities],
        hint: hint,
      ));

  FlutterRustBridgeTaskConstMeta get kIntensityRgbaConstMeta =>
      const FlutterRustBridgeTaskConstMeta(
        debugName: "intensity_rgba",
        argNames: ["intensities"],
      );

  Future<Uint8List> yuvRgba({required ImageData img, dynamic hint}) =>
      _platform.executeNormal(FlutterRustBridgeTask(
        callFfi: (port_) => _platform.inner.wire_yuv_rgba(
            port_, _platform.api2wire_box_autoadd_image_data(img)),
        parseSuccessData: _wire2api_ZeroCopyBuffer_Uint8List,
        constMeta: kYuvRgbaConstMeta,
        argValues: [img],
        hint: hint,
      ));

  FlutterRustBridgeTaskConstMeta get kYuvRgbaConstMeta =>
      const FlutterRustBridgeTaskConstMeta(
        debugName: "yuv_rgba",
        argNames: ["img"],
      );

  Future<int> colorCount({required ImageData img, dynamic hint}) =>
      _platform.executeNormal(FlutterRustBridgeTask(
        callFfi: (port_) => _platform.inner.wire_color_count(
            port_, _platform.api2wire_box_autoadd_image_data(img)),
        parseSuccessData: _wire2api_i64,
        constMeta: kColorCountConstMeta,
        argValues: [img],
        hint: hint,
      ));

  FlutterRustBridgeTaskConstMeta get kColorCountConstMeta =>
      const FlutterRustBridgeTaskConstMeta(
        debugName: "color_count",
        argNames: ["img"],
      );

  Future<Uint8List> groundlineSampleOverlay(
          {required ImageData img, dynamic hint}) =>
      _platform.executeNormal(FlutterRustBridgeTask(
        callFfi: (port_) => _platform.inner.wire_groundline_sample_overlay(
            port_, _platform.api2wire_box_autoadd_image_data(img)),
        parseSuccessData: _wire2api_ZeroCopyBuffer_Uint8List,
        constMeta: kGroundlineSampleOverlayConstMeta,
        argValues: [img],
        hint: hint,
      ));

  FlutterRustBridgeTaskConstMeta get kGroundlineSampleOverlayConstMeta =>
      const FlutterRustBridgeTaskConstMeta(
        debugName: "groundline_sample_overlay",
        argNames: ["img"],
      );

  Future<void> startKmeansTraining({required ImageData img, dynamic hint}) =>
      _platform.executeNormal(FlutterRustBridgeTask(
        callFfi: (port_) => _platform.inner.wire_start_kmeans_training(
            port_, _platform.api2wire_box_autoadd_image_data(img)),
        parseSuccessData: _wire2api_unit,
        constMeta: kStartKmeansTrainingConstMeta,
        argValues: [img],
        hint: hint,
      ));

  FlutterRustBridgeTaskConstMeta get kStartKmeansTrainingConstMeta =>
      const FlutterRustBridgeTaskConstMeta(
        debugName: "start_kmeans_training",
        argNames: ["img"],
      );

  Future<Uint8List> colorClusterer({required ImageData img, dynamic hint}) =>
      _platform.executeNormal(FlutterRustBridgeTask(
        callFfi: (port_) => _platform.inner.wire_color_clusterer(
            port_, _platform.api2wire_box_autoadd_image_data(img)),
        parseSuccessData: _wire2api_ZeroCopyBuffer_Uint8List,
        constMeta: kColorClustererConstMeta,
        argValues: [img],
        hint: hint,
      ));

  FlutterRustBridgeTaskConstMeta get kColorClustererConstMeta =>
      const FlutterRustBridgeTaskConstMeta(
        debugName: "color_clusterer",
        argNames: ["img"],
      );

  Future<Uint8List> groundlineKMeans({required ImageData img, dynamic hint}) =>
      _platform.executeNormal(FlutterRustBridgeTask(
        callFfi: (port_) => _platform.inner.wire_groundline_k_means(
            port_, _platform.api2wire_box_autoadd_image_data(img)),
        parseSuccessData: _wire2api_ZeroCopyBuffer_Uint8List,
        constMeta: kGroundlineKMeansConstMeta,
        argValues: [img],
        hint: hint,
      ));

  FlutterRustBridgeTaskConstMeta get kGroundlineKMeansConstMeta =>
      const FlutterRustBridgeTaskConstMeta(
        debugName: "groundline_k_means",
        argNames: ["img"],
      );

  Future<CorrelationFlow> getCorrelationFlow(
          {required Uint8List prevYs,
          required Uint8List currentYs,
          required int width,
          required int height,
          dynamic hint}) =>
      _platform.executeNormal(FlutterRustBridgeTask(
        callFfi: (port_) => _platform.inner.wire_get_correlation_flow(
            port_,
            _platform.api2wire_uint_8_list(prevYs),
            _platform.api2wire_uint_8_list(currentYs),
            _platform.api2wire_i64(width),
            _platform.api2wire_i64(height)),
        parseSuccessData: _wire2api_correlation_flow,
        constMeta: kGetCorrelationFlowConstMeta,
        argValues: [prevYs, currentYs, width, height],
        hint: hint,
      ));

  FlutterRustBridgeTaskConstMeta get kGetCorrelationFlowConstMeta =>
      const FlutterRustBridgeTaskConstMeta(
        debugName: "get_correlation_flow",
        argNames: ["prevYs", "currentYs", "width", "height"],
      );

  Future<void> resetPositionEstimate({dynamic hint}) =>
      _platform.executeNormal(FlutterRustBridgeTask(
        callFfi: (port_) => _platform.inner.wire_reset_position_estimate(port_),
        parseSuccessData: _wire2api_unit,
        constMeta: kResetPositionEstimateConstMeta,
        argValues: [],
        hint: hint,
      ));

  FlutterRustBridgeTaskConstMeta get kResetPositionEstimateConstMeta =>
      const FlutterRustBridgeTaskConstMeta(
        debugName: "reset_position_estimate",
        argNames: [],
      );

  Future<String> processSensorData(
          {required String incomingData, dynamic hint}) =>
      _platform.executeNormal(FlutterRustBridgeTask(
        callFfi: (port_) => _platform.inner.wire_process_sensor_data(
            port_, _platform.api2wire_String(incomingData)),
        parseSuccessData: _wire2api_String,
        constMeta: kProcessSensorDataConstMeta,
        argValues: [incomingData],
        hint: hint,
      ));

  FlutterRustBridgeTaskConstMeta get kProcessSensorDataConstMeta =>
      const FlutterRustBridgeTaskConstMeta(
        debugName: "process_sensor_data",
        argNames: ["incomingData"],
      );

  Future<SensorData> parseSensorData(
          {required String incomingData, dynamic hint}) =>
      _platform.executeNormal(FlutterRustBridgeTask(
        callFfi: (port_) => _platform.inner.wire_parse_sensor_data(
            port_, _platform.api2wire_String(incomingData)),
        parseSuccessData: _wire2api_sensor_data,
        constMeta: kParseSensorDataConstMeta,
        argValues: [incomingData],
        hint: hint,
      ));

  FlutterRustBridgeTaskConstMeta get kParseSensorDataConstMeta =>
      const FlutterRustBridgeTaskConstMeta(
        debugName: "parse_sensor_data",
        argNames: ["incomingData"],
      );

// Section: wire2api

  String _wire2api_String(dynamic raw) {
    return raw as String;
  }

  Uint8List _wire2api_ZeroCopyBuffer_Uint8List(dynamic raw) {
    return raw as Uint8List;
  }

  bool _wire2api_bool(dynamic raw) {
    return raw as bool;
  }

  CorrelationFlow _wire2api_correlation_flow(dynamic raw) {
    final arr = raw as List<dynamic>;
    if (arr.length != 2)
      throw Exception('unexpected arr length: expect 2 but see ${arr.length}');
    return CorrelationFlow(
      dx: _wire2api_i16(arr[0]),
      dy: _wire2api_i16(arr[1]),
    );
  }

  int _wire2api_i16(dynamic raw) {
    return raw as int;
  }

  int _wire2api_i64(dynamic raw) {
    return castInt(raw);
  }

  SensorData _wire2api_sensor_data(dynamic raw) {
    final arr = raw as List<dynamic>;
    if (arr.length != 7)
      throw Exception('unexpected arr length: expect 7 but see ${arr.length}');
    return SensorData(
      sonarFront: _wire2api_i64(arr[0]),
      sonarLeft: _wire2api_i64(arr[1]),
      sonarRight: _wire2api_i64(arr[2]),
      leftCount: _wire2api_i64(arr[3]),
      rightCount: _wire2api_i64(arr[4]),
      leftSpeed: _wire2api_i64(arr[5]),
      rightSpeed: _wire2api_i64(arr[6]),
    );
  }

  int _wire2api_u8(dynamic raw) {
    return raw as int;
  }

  Uint8List _wire2api_uint_8_list(dynamic raw) {
    return raw as Uint8List;
  }

  void _wire2api_unit(dynamic raw) {
    return;
  }
}

// Section: api2wire

@protected
int api2wire_u8(int raw) {
  return raw;
}

class NativePlatform extends FlutterRustBridgeBase<NativeWire> {
  NativePlatform(ffi.DynamicLibrary dylib) : super(NativeWire(dylib));
// Section: api2wire

  @protected
  ffi.Pointer<wire_uint_8_list> api2wire_String(String raw) {
    return api2wire_uint_8_list(utf8.encoder.convert(raw));
  }

  @protected
  ffi.Pointer<wire_ImageData> api2wire_box_autoadd_image_data(ImageData raw) {
    final ptr = inner.new_box_autoadd_image_data_0();
    _api_fill_to_wire_image_data(raw, ptr.ref);
    return ptr;
  }

  @protected
  int api2wire_i64(int raw) {
    return raw;
  }

  @protected
  ffi.Pointer<wire_uint_8_list> api2wire_uint_8_list(Uint8List raw) {
    final ans = inner.new_uint_8_list_0(raw.length);
    ans.ref.ptr.asTypedList(raw.length).setAll(0, raw);
    return ans;
  }
// Section: api_fill_to_wire

  void _api_fill_to_wire_box_autoadd_image_data(
      ImageData apiObj, ffi.Pointer<wire_ImageData> wireObj) {
    _api_fill_to_wire_image_data(apiObj, wireObj.ref);
  }

  void _api_fill_to_wire_image_data(ImageData apiObj, wire_ImageData wireObj) {
    wireObj.ys = api2wire_uint_8_list(apiObj.ys);
    wireObj.us = api2wire_uint_8_list(apiObj.us);
    wireObj.vs = api2wire_uint_8_list(apiObj.vs);
    wireObj.width = api2wire_i64(apiObj.width);
    wireObj.height = api2wire_i64(apiObj.height);
    wireObj.uv_row_stride = api2wire_i64(apiObj.uvRowStride);
    wireObj.uv_pixel_stride = api2wire_i64(apiObj.uvPixelStride);
  }
}

// ignore_for_file: camel_case_types, non_constant_identifier_names, avoid_positional_boolean_parameters, annotate_overrides, constant_identifier_names

// AUTO GENERATED FILE, DO NOT EDIT.
//
// Generated by `package:ffigen`.

/// generated by flutter_rust_bridge
class NativeWire implements FlutterRustBridgeWireBase {
  /// Holds the symbol lookup function.
  final ffi.Pointer<T> Function<T extends ffi.NativeType>(String symbolName)
      _lookup;

  /// The symbols are looked up in [dynamicLibrary].
  NativeWire(ffi.DynamicLibrary dynamicLibrary)
      : _lookup = dynamicLibrary.lookup;

  /// The symbols are looked up with [lookup].
  NativeWire.fromLookup(
      ffi.Pointer<T> Function<T extends ffi.NativeType>(String symbolName)
          lookup)
      : _lookup = lookup;

  void store_dart_post_cobject(
    DartPostCObjectFnType ptr,
  ) {
    return _store_dart_post_cobject(
      ptr,
    );
  }

  late final _store_dart_post_cobjectPtr =
      _lookup<ffi.NativeFunction<ffi.Void Function(DartPostCObjectFnType)>>(
          'store_dart_post_cobject');
  late final _store_dart_post_cobject = _store_dart_post_cobjectPtr
      .asFunction<void Function(DartPostCObjectFnType)>();

  void wire_kmeans_ready(
    int port_,
  ) {
    return _wire_kmeans_ready(
      port_,
    );
  }

  late final _wire_kmeans_readyPtr =
      _lookup<ffi.NativeFunction<ffi.Void Function(ffi.Int64)>>(
          'wire_kmeans_ready');
  late final _wire_kmeans_ready =
      _wire_kmeans_readyPtr.asFunction<void Function(int)>();

  void wire_training_time(
    int port_,
  ) {
    return _wire_training_time(
      port_,
    );
  }

  late final _wire_training_timePtr =
      _lookup<ffi.NativeFunction<ffi.Void Function(ffi.Int64)>>(
          'wire_training_time');
  late final _wire_training_time =
      _wire_training_timePtr.asFunction<void Function(int)>();

  void wire_intensity_rgba(
    int port_,
    ffi.Pointer<wire_uint_8_list> intensities,
  ) {
    return _wire_intensity_rgba(
      port_,
      intensities,
    );
  }

  late final _wire_intensity_rgbaPtr = _lookup<
      ffi.NativeFunction<
          ffi.Void Function(ffi.Int64,
              ffi.Pointer<wire_uint_8_list>)>>('wire_intensity_rgba');
  late final _wire_intensity_rgba = _wire_intensity_rgbaPtr
      .asFunction<void Function(int, ffi.Pointer<wire_uint_8_list>)>();

  void wire_yuv_rgba(
    int port_,
    ffi.Pointer<wire_ImageData> img,
  ) {
    return _wire_yuv_rgba(
      port_,
      img,
    );
  }

  late final _wire_yuv_rgbaPtr = _lookup<
      ffi.NativeFunction<
          ffi.Void Function(
              ffi.Int64, ffi.Pointer<wire_ImageData>)>>('wire_yuv_rgba');
  late final _wire_yuv_rgba = _wire_yuv_rgbaPtr
      .asFunction<void Function(int, ffi.Pointer<wire_ImageData>)>();

  void wire_color_count(
    int port_,
    ffi.Pointer<wire_ImageData> img,
  ) {
    return _wire_color_count(
      port_,
      img,
    );
  }

  late final _wire_color_countPtr = _lookup<
      ffi.NativeFunction<
          ffi.Void Function(
              ffi.Int64, ffi.Pointer<wire_ImageData>)>>('wire_color_count');
  late final _wire_color_count = _wire_color_countPtr
      .asFunction<void Function(int, ffi.Pointer<wire_ImageData>)>();

  void wire_groundline_sample_overlay(
    int port_,
    ffi.Pointer<wire_ImageData> img,
  ) {
    return _wire_groundline_sample_overlay(
      port_,
      img,
    );
  }

  late final _wire_groundline_sample_overlayPtr = _lookup<
      ffi.NativeFunction<
          ffi.Void Function(ffi.Int64,
              ffi.Pointer<wire_ImageData>)>>('wire_groundline_sample_overlay');
  late final _wire_groundline_sample_overlay =
      _wire_groundline_sample_overlayPtr
          .asFunction<void Function(int, ffi.Pointer<wire_ImageData>)>();

  void wire_start_kmeans_training(
    int port_,
    ffi.Pointer<wire_ImageData> img,
  ) {
    return _wire_start_kmeans_training(
      port_,
      img,
    );
  }

  late final _wire_start_kmeans_trainingPtr = _lookup<
      ffi.NativeFunction<
          ffi.Void Function(ffi.Int64,
              ffi.Pointer<wire_ImageData>)>>('wire_start_kmeans_training');
  late final _wire_start_kmeans_training = _wire_start_kmeans_trainingPtr
      .asFunction<void Function(int, ffi.Pointer<wire_ImageData>)>();

  void wire_color_clusterer(
    int port_,
    ffi.Pointer<wire_ImageData> img,
  ) {
    return _wire_color_clusterer(
      port_,
      img,
    );
  }

  late final _wire_color_clustererPtr = _lookup<
      ffi.NativeFunction<
          ffi.Void Function(
              ffi.Int64, ffi.Pointer<wire_ImageData>)>>('wire_color_clusterer');
  late final _wire_color_clusterer = _wire_color_clustererPtr
      .asFunction<void Function(int, ffi.Pointer<wire_ImageData>)>();

  void wire_groundline_k_means(
    int port_,
    ffi.Pointer<wire_ImageData> img,
  ) {
    return _wire_groundline_k_means(
      port_,
      img,
    );
  }

  late final _wire_groundline_k_meansPtr = _lookup<
      ffi.NativeFunction<
          ffi.Void Function(ffi.Int64,
              ffi.Pointer<wire_ImageData>)>>('wire_groundline_k_means');
  late final _wire_groundline_k_means = _wire_groundline_k_meansPtr
      .asFunction<void Function(int, ffi.Pointer<wire_ImageData>)>();

  void wire_get_correlation_flow(
    int port_,
    ffi.Pointer<wire_uint_8_list> prev_ys,
    ffi.Pointer<wire_uint_8_list> current_ys,
    int width,
    int height,
  ) {
    return _wire_get_correlation_flow(
      port_,
      prev_ys,
      current_ys,
      width,
      height,
    );
  }

  late final _wire_get_correlation_flowPtr = _lookup<
      ffi.NativeFunction<
          ffi.Void Function(
              ffi.Int64,
              ffi.Pointer<wire_uint_8_list>,
              ffi.Pointer<wire_uint_8_list>,
              ffi.Int64,
              ffi.Int64)>>('wire_get_correlation_flow');
  late final _wire_get_correlation_flow =
      _wire_get_correlation_flowPtr.asFunction<
          void Function(int, ffi.Pointer<wire_uint_8_list>,
              ffi.Pointer<wire_uint_8_list>, int, int)>();

  void wire_reset_position_estimate(
    int port_,
  ) {
    return _wire_reset_position_estimate(
      port_,
    );
  }

  late final _wire_reset_position_estimatePtr =
      _lookup<ffi.NativeFunction<ffi.Void Function(ffi.Int64)>>(
          'wire_reset_position_estimate');
  late final _wire_reset_position_estimate =
      _wire_reset_position_estimatePtr.asFunction<void Function(int)>();

  void wire_process_sensor_data(
    int port_,
    ffi.Pointer<wire_uint_8_list> incoming_data,
  ) {
    return _wire_process_sensor_data(
      port_,
      incoming_data,
    );
  }

  late final _wire_process_sensor_dataPtr = _lookup<
      ffi.NativeFunction<
          ffi.Void Function(ffi.Int64,
              ffi.Pointer<wire_uint_8_list>)>>('wire_process_sensor_data');
  late final _wire_process_sensor_data = _wire_process_sensor_dataPtr
      .asFunction<void Function(int, ffi.Pointer<wire_uint_8_list>)>();

  void wire_parse_sensor_data(
    int port_,
    ffi.Pointer<wire_uint_8_list> incoming_data,
  ) {
    return _wire_parse_sensor_data(
      port_,
      incoming_data,
    );
  }

  late final _wire_parse_sensor_dataPtr = _lookup<
      ffi.NativeFunction<
          ffi.Void Function(ffi.Int64,
              ffi.Pointer<wire_uint_8_list>)>>('wire_parse_sensor_data');
  late final _wire_parse_sensor_data = _wire_parse_sensor_dataPtr
      .asFunction<void Function(int, ffi.Pointer<wire_uint_8_list>)>();

  ffi.Pointer<wire_ImageData> new_box_autoadd_image_data_0() {
    return _new_box_autoadd_image_data_0();
  }

  late final _new_box_autoadd_image_data_0Ptr =
      _lookup<ffi.NativeFunction<ffi.Pointer<wire_ImageData> Function()>>(
          'new_box_autoadd_image_data_0');
  late final _new_box_autoadd_image_data_0 = _new_box_autoadd_image_data_0Ptr
      .asFunction<ffi.Pointer<wire_ImageData> Function()>();

  ffi.Pointer<wire_uint_8_list> new_uint_8_list_0(
    int len,
  ) {
    return _new_uint_8_list_0(
      len,
    );
  }

  late final _new_uint_8_list_0Ptr = _lookup<
      ffi.NativeFunction<
          ffi.Pointer<wire_uint_8_list> Function(
              ffi.Int32)>>('new_uint_8_list_0');
  late final _new_uint_8_list_0 = _new_uint_8_list_0Ptr
      .asFunction<ffi.Pointer<wire_uint_8_list> Function(int)>();

  void free_WireSyncReturnStruct(
    WireSyncReturnStruct val,
  ) {
    return _free_WireSyncReturnStruct(
      val,
    );
  }

  late final _free_WireSyncReturnStructPtr =
      _lookup<ffi.NativeFunction<ffi.Void Function(WireSyncReturnStruct)>>(
          'free_WireSyncReturnStruct');
  late final _free_WireSyncReturnStruct = _free_WireSyncReturnStructPtr
      .asFunction<void Function(WireSyncReturnStruct)>();
}

class wire_uint_8_list extends ffi.Struct {
  external ffi.Pointer<ffi.Uint8> ptr;

  @ffi.Int32()
  external int len;
}

class wire_ImageData extends ffi.Struct {
  external ffi.Pointer<wire_uint_8_list> ys;

  external ffi.Pointer<wire_uint_8_list> us;

  external ffi.Pointer<wire_uint_8_list> vs;

  @ffi.Int64()
  external int width;

  @ffi.Int64()
  external int height;

  @ffi.Int64()
  external int uv_row_stride;

  @ffi.Int64()
  external int uv_pixel_stride;
}

typedef DartPostCObjectFnType = ffi.Pointer<
    ffi.NativeFunction<ffi.Bool Function(DartPort, ffi.Pointer<ffi.Void>)>>;
typedef DartPort = ffi.Int64;

// AUTO GENERATED FILE, DO NOT EDIT.
// Generated by `flutter_rust_bridge`@ 1.49.0.
// ignore_for_file: non_constant_identifier_names, unused_element, duplicate_ignore, directives_ordering, curly_braces_in_flow_control_structures, unnecessary_lambdas, slash_for_doc_comments, prefer_const_literals_to_create_immutables, implicit_dynamic_list_literal, duplicate_import, unused_import, prefer_single_quotes, prefer_const_constructors, use_super_parameters, always_use_package_imports, annotate_overrides, invalid_use_of_protected_member, constant_identifier_names

import 'dart:convert';
import 'dart:async';
import 'package:flutter_rust_bridge/flutter_rust_bridge.dart';

abstract class Native {
  Future<bool> kmeansReady({dynamic hint});

  FlutterRustBridgeTaskConstMeta get kKmeansReadyConstMeta;

  Future<int> trainingTime({dynamic hint});

  FlutterRustBridgeTaskConstMeta get kTrainingTimeConstMeta;

  Future<Uint8List> intensityRgba(
      {required Uint8List intensities, dynamic hint});

  FlutterRustBridgeTaskConstMeta get kIntensityRgbaConstMeta;

  Future<Uint8List> yuvRgba({required ImageData img, dynamic hint});

  FlutterRustBridgeTaskConstMeta get kYuvRgbaConstMeta;

  Future<int> colorCount({required ImageData img, dynamic hint});

  FlutterRustBridgeTaskConstMeta get kColorCountConstMeta;

  Future<Uint8List> groundlineSampleOverlay(
      {required ImageData img, dynamic hint});

  FlutterRustBridgeTaskConstMeta get kGroundlineSampleOverlayConstMeta;

  Future<void> startKmeansTraining({required ImageData img, dynamic hint});

  FlutterRustBridgeTaskConstMeta get kStartKmeansTrainingConstMeta;

  Future<Uint8List> colorClusterer({required ImageData img, dynamic hint});

  FlutterRustBridgeTaskConstMeta get kColorClustererConstMeta;

  Future<Uint8List> groundlineKMeans({required ImageData img, dynamic hint});

  FlutterRustBridgeTaskConstMeta get kGroundlineKMeansConstMeta;

  Future<CorrelationFlow> getCorrelationFlow(
      {required Uint8List prevYs,
      required Uint8List currentYs,
      required int width,
      required int height,
      dynamic hint});

  FlutterRustBridgeTaskConstMeta get kGetCorrelationFlowConstMeta;

  Future<void> resetPositionEstimate({dynamic hint});

  FlutterRustBridgeTaskConstMeta get kResetPositionEstimateConstMeta;

  Future<String> processSensorData(
      {required String incomingData, dynamic hint});

  FlutterRustBridgeTaskConstMeta get kProcessSensorDataConstMeta;

  Future<SensorData> parseSensorData(
      {required String incomingData, dynamic hint});

  FlutterRustBridgeTaskConstMeta get kParseSensorDataConstMeta;
}

class CorrelationFlow {
  final int dx;
  final int dy;

  CorrelationFlow({
    required this.dx,
    required this.dy,
  });
}

class ImageData {
  final Uint8List ys;
  final Uint8List us;
  final Uint8List vs;
  final int width;
  final int height;
  final int uvRowStride;
  final int uvPixelStride;

  ImageData({
    required this.ys,
    required this.us,
    required this.vs,
    required this.width,
    required this.height,
    required this.uvRowStride,
    required this.uvPixelStride,
  });
}

class SensorData {
  final int sonarFront;
  final int sonarLeft;
  final int sonarRight;
  final int leftCount;
  final int rightCount;
  final int leftSpeed;
  final int rightSpeed;

  SensorData({
    required this.sonarFront,
    required this.sonarLeft,
    required this.sonarRight,
    required this.leftCount,
    required this.rightCount,
    required this.leftSpeed,
    required this.rightSpeed,
  });
}

OS

Windows

Version of flutter_rust_bridge_codegen

1.53.0

Flutter info

PS C:\Users\ferrer\AndroidStudioProjects\groundline> flutter doctor -v
[√] Flutter (Channel stable, 3.3.9, on Microsoft Windows [Version 10.0.19043.1288], locale en-US)
    • Flutter version 3.3.9 on channel stable at C:\Users\ferrer\flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision b8f7f1f986 (2 weeks ago), 2022-11-23 06:43:51 +0900
    • Engine revision 8f2221fbef
    • Dart version 2.18.5
    • DevTools version 2.15.0

[√] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    • Android SDK at C:\Users\ferrer\AppData\Local\Android\Sdk
    • Platform android-33, build-tools 30.0.3
    • ANDROID_HOME = C:\Users\ferrer\AppData\Local\Android\Sdk
    • Java binary at: C:\Program Files\Android\Android Studio1\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 11.0.12+7-b1504.28-7817840)
    • All Android licenses accepted.

[√] Chrome - develop for the web
    • Chrome at C:\Program Files\Google\Chrome\Application\chrome.exe

[√] Visual Studio - develop for Windows (Visual Studio Community 2019 16.3.6)
    • Visual Studio at C:\Program Files (x86)\Microsoft Visual Studio\2019\Community
    • Visual Studio Community 2019 version 16.3.29418.71
    • Windows 10 SDK version 10.0.18362.0

[!] Android Studio (version 3.5)
    • Android Studio at C:\Program Files\Android\Android Studio
    • Flutter plugin version 44.0.1
    • Dart plugin version 191.8593
    X Unable to determine bundled Java version.
    • Try updating or re-installing Android Studio.

[√] Android Studio (version 2021.2)
    • Android Studio at C:\Program Files\Android\Android Studio1
    • Flutter plugin can be installed from:
       https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
       https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.12+7-b1504.28-7817840)

[√] IntelliJ IDEA Community Edition (version 2022.2)
    • IntelliJ at C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2022.2.2
    • Flutter plugin can be installed from:
       https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
       https://plugins.jetbrains.com/plugin/6351-dart

[√] VS Code, 64-bit edition (version 1.73.1)
    • VS Code at C:\Program Files\Microsoft VS Code
    • Flutter extension can be installed from:
       https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter

[√] Connected device (4 available)
    • KFAUWI (mobile)   • G0W0MA078282F7EP • android-arm    • Android 5.1.1 (API 22)
    • Windows (desktop) • windows          • windows-x64    • Microsoft Windows [Version 10.0.19043.1288]
    • Chrome (web)      • chrome           • web-javascript • Google Chrome 108.0.5359.71
    • Edge (web)        • edge             • web-javascript • Microsoft Edge 107.0.1418.62

[√] HTTP Host Availability
    • All required HTTP hosts are available

! Doctor found issues in 1 category.
PS C:\Users\ferrer\AndroidStudioProjects\groundline>

Version of clang++

No response

Version of ffigen

7.2.2

Additional context

No response

@gjf2a gjf2a added the bug Something isn't working label Dec 7, 2022
@welcome
Copy link

welcome bot commented Dec 7, 2022

Hi! Thanks for opening your first issue here! 😄

@fzyzcjy
Copy link
Owner

fzyzcjy commented Dec 7, 2022

maybe try to upgrade frb_dart dependency as well

@rob-mur
Copy link

rob-mur commented Dec 8, 2022

Can confirm I can replicate this bug too, and that 1.51 seems to work ok.

Whilst this is worked on it might be worth rolling back to 1.51? It took an amount of troubleshooting to realise why this was happening only in CI because if you use the semver ^ notation locally (such as ^1.48.0) then you wouldn't see this problem without running flutter pub upgrade. (which is what happened to me - might be nice to save others the trouble)

@fzyzcjy
Copy link
Owner

fzyzcjy commented Dec 8, 2022

/cc @rogurotus who implemented the wonderful opaque feature - maybe we forget to generate those functions under the conditions mentioned in this port?

@rogurotus
Copy link
Contributor

cargo.toml use flutter_rust_bridge 1.53?

@rogurotus
Copy link
Contributor

it looks like an old version of frb is used for rust

@rob-mur
Copy link

rob-mur commented Dec 9, 2022

Checking this morning using 1.54.0 in both it does seem to work correctly, at least on my end.

@stevehayles
Copy link

Same issue for me using 1.53.0 and unfortunately 1.54.0, I have tried clearing the various caches, restarting the machine and the device.

@fzyzcjy
Copy link
Owner

fzyzcjy commented Dec 10, 2022

@stevehayles have you updated the cargo.toml to use latest version? please paste the toml and lock files

@stevehayles
Copy link

Hi @fzyzcjy , thanks for your response. The code all looks correct, clearly something not right on my machine, I have done a cargo update and the lock file contains 1.54.0 but the new opaque functions are not being generated. I'll reboot this machine (which is slow!) and then pull the repo to another dev machine to test it there.

I have read through the recent commits now, something is wrong my end sorry

@stevehayles
Copy link

stevehayles commented Dec 10, 2022

Hi @fzyzcjy , further to my last post, on two machines this is not working for me

lock file is large but contains

[[package]]
name = "flutter_rust_bridge"
version = "1.54.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5df8e5ef5f0e51bc20a0f4f4dc9b84f08256f9fec19098fd66ef098cc77c30b3"
dependencies = [
 "allo-isolate",
 "anyhow",
 "build-target",
 "bytemuck",
 "cc",
 "chrono",
 "console_error_panic_hook",
 "dart-sys",
 "flutter_rust_bridge_macros",
 "js-sys",
 "lazy_static",
 "libc",
 "log",
 "parking_lot",
 "threadpool",
 "wasm-bindgen",
 "web-sys",
]

[[package]]
name = "flutter_rust_bridge_macros"
version = "1.54.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "aee137f8da06658835df7984db8a4cce338750e15bad19bca680004ccbfa0623"

the flutter pub cache only contains '.pub-cache\hosted\pub.dartlang.org\flutter_rust_bridge-1.54.0' and no other versions

Dart analyzer complains with the following and the methods are missing in bridge_generated.dart

Missing concrete implementations of 'FlutterRustBridgeWireBase.drop_dart_object', 'FlutterRustBridgeWireBase.get_dart_object', and 'FlutterRustBridgeWireBase.new_dart_opaque'.
Try implementing the missing methods, or make the class abstract.dart[non_abstract_class_inherits_abstract_member](https://dart.dev/diagnostics/non_abstract_class_inherits_abstract_member)

I can roll back to 1.51 and it works fine but would be great to try the new opaque types!!

@fzyzcjy
Copy link
Owner

fzyzcjy commented Dec 10, 2022

/cc @rogurotus

@rogurotus
Copy link
Contributor

code-generating not through build.rs?
try cargo install flutter_rust_bridge_codegen

@rob-mur
Copy link

rob-mur commented Dec 10, 2022

I do think I had to directly call codegen when I got mine to work, the build.rs in the docs wasn't auto generating it.

@stevehayles
Copy link

stevehayles commented Dec 10, 2022

running cargo install flutter_rust_bridge_codegen and then my just file worked straight away, thank you! Not sure if I missed something in the docs, sorry for the wasted time

@rob-mur
Copy link

rob-mur commented Dec 10, 2022

Could you try the build.rs in the docs to check that it automatically regenerates still?

@stevehayles
Copy link

@rob-mur I will try it now yes. Having got rid of the analyzer errors and the wrapper code being correctly generated I actually can't succesfully compile code that was working fine before the 'updates'.

I get the error

= note: ld: error: unable to find library -ldart clang: error: linker command failed with exit code 1 (use -v to see invocation)

Not totally sure if it's related or not, but immediately prior to the update to 1.54 and the installation of the flutter_rust_bridge_codegen package it compiled fine

@rob-mur
Copy link

rob-mur commented Dec 10, 2022

Interesting, could you post the full verbose log? (With the -v as it suggests)

@stevehayles
Copy link

I am not sure the -v has been passed to the right part of the script but here is the invocation log

[2022-12-10T10:22:39Z INFO  cargo_ndk::cli] Using NDK at path: P:\Android\android-sdk\ndk-bundle (ANDROID_NDK_HOME)
[2022-12-10T10:22:39Z INFO  cargo_ndk::cli] NDK API level: 21
[2022-12-10T10:22:39Z INFO  cargo_ndk::cli] Building targets: armeabi-v7a, arm64-v8a
[2022-12-10T10:22:39Z INFO  cargo_ndk::cli] Building armeabi-v7a (armv7-linux-androideabi)
       Fresh autocfg v1.1.0
       Fresh version_check v0.9.4
       Fresh cfg-if v1.0.0
       Fresh libc v0.2.138
       Fresh unicode-ident v1.0.5
       Fresh proc-macro2 v1.0.47
       Fresh quote v1.0.21
       Fresh syn v1.0.105
       Fresh ctor v0.1.26
       Fresh memchr v2.5.0
       Fresh value-bag v1.0.0-alpha.9
       Fresh pin-project-lite v0.2.9
       Fresh futures-core v0.3.25
       Fresh once_cell v1.16.0
       Fresh log v0.4.17
       Fresh smallvec v1.10.0
       Fresh scopeguard v1.1.0
       Fresh parking_lot_core v0.9.5
       Fresh lock_api v0.4.9
       Fresh parking_lot v0.12.1
       Fresh cc v1.0.77
       Fresh crossbeam-utils v0.8.14
       Fresh socket2 v0.4.7
       Fresh fastrand v1.8.0
       Fresh futures-io v0.3.25
       Fresh waker-fn v1.1.0
       Fresh parking v2.0.0
       Fresh event-listener v2.5.3
       Fresh slab v0.4.7
       Fresh concurrent-queue v2.0.0
       Fresh futures-lite v1.12.0
       Fresh num_cpus v1.14.0
       Fresh itoa v1.0.4
       Fresh bytes v1.3.0
       Fresh async-lock v2.6.0
       Fresh getrandom v0.2.8
       Fresh vcpkg v0.2.15
       Fresh pkg-config v0.3.26
       Fresh serde_derive v1.0.149
       Fresh ahash v0.7.6
       Fresh mio v0.8.5
       Fresh tracing-core v0.1.30
       Fresh tokio-macros v1.8.2
       Fresh signal-hook-registry v1.4.0
       Fresh async-task v4.3.0
       Fresh fnv v1.0.7
       Fresh pin-utils v0.1.0
       Fresh hashbrown v0.12.3
       Fresh http v0.2.8
       Fresh indexmap v1.9.2
       Fresh tokio v1.23.0
       Fresh hashbrown v0.11.2
       Fresh tracing v0.1.37
       Fresh polling v2.5.1
       Fresh serde v1.0.149
       Fresh proc-macro-error-attr v1.0.4
       Fresh futures-task v0.3.25
       Fresh num-traits v0.2.15
       Fresh async-channel v1.8.0
       Fresh aho-corasick v0.7.20
       Fresh atty v0.2.14
       Fresh android_system_properties v0.1.5
       Fresh regex-syntax v0.6.28
       Fresh quick-error v1.2.3
       Fresh futures-sink v0.3.25
       Fresh atomic-waker v1.0.0
       Fresh bitflags v1.3.2
       Fresh termcolor v1.1.3
       Fresh humantime v1.3.0
       Fresh tokio-util v0.7.4
       Fresh blocking v1.3.0
       Fresh regex v1.7.0
       Fresh iana-time-zone v0.1.53
       Fresh num-integer v0.1.45
       Fresh futures-util v0.3.25
       Fresh libsqlite3-sys v0.24.2
       Fresh proc-macro-error v1.0.4
       Fresh async-io v1.12.0
       Fresh hashlink v0.7.0
       Fresh async-executor v1.5.0
       Fresh scheduled-thread-pool v0.2.6
       Fresh serde_tuple_macros v0.5.0
       Fresh time v0.1.45
       Fresh fallible-iterator v0.2.0
       Fresh ryu v1.0.11
       Fresh heck v0.4.0
       Fresh os_str_bytes v6.4.1
       Fresh build-target v0.4.0
       Fresh try-lock v0.2.3
       Fresh fallible-streaming-iterator v0.1.9
       Fresh adler v1.0.2
       Fresh clap_lex v0.2.4
       Fresh miniz_oxide v0.6.2
       Fresh rusqlite v0.27.0
       Fresh want v0.3.0
       Fresh serde_json v1.0.89
       Fresh chrono v0.4.23
       Fresh clap_derive v3.2.18
       Fresh r2d2 v0.8.10
       Fresh serde_tuple v0.5.0
       Fresh async-global-executor v2.3.1
       Fresh h2 v0.3.15
       Fresh env_logger v0.7.1
       Fresh anyhow v1.0.66
       Fresh atomic v0.5.1
       Fresh futures-channel v0.3.25
       Fresh crc32fast v1.3.2
       Fresh httparse v1.8.0
       Fresh http-body v0.4.5
       Fresh kv-log-macro v1.0.7
       Fresh lazy_static v1.4.0
       Fresh strsim v0.10.0
       Fresh tower-service v0.3.2
       Fresh httpdate v1.0.2
       Fresh textwrap v0.16.0
       Fresh hyper v0.14.23
       Fresh clap v3.2.23
       Fresh async-std v1.12.0
       Fresh flate2 v1.0.25
       Fresh allo-isolate v0.1.14-beta.4
       Fresh pretty_env_logger v0.4.0
       Fresh tilejson v0.3.2
       Fresh r2d2_sqlite v0.20.0
       Fresh dart-sys v2.0.1
       Fresh threadpool v1.8.1
       Fresh flutter_rust_bridge_macros v1.54.0
       Fresh bytemuck v1.12.3
       Fresh urldecode v0.1.1
       Fresh mbtileserver v0.1.7 (C:\Users\steve\source\repos\mbtileserver-rs)
       Fresh flutter_rust_bridge v1.54.0
   Compiling native v0.1.0 (C:\Users\steve\source\repos\bluefin_app\native)
     Running `rustc --crate-name native --edition=2021 src\lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type staticlib --crate-type cdylib --emit=dep-info,link -C opt-level=3 -C embed-bitcode=no -C metadata=3ce52755af7faa6b --out-dir C:\Users\steve\source\repos\bluefin_app\native\target\armv7-linux-androideabi\release\deps --target armv7-linux-androideabi -C linker=P:\Android\android-sdk\ndk-bundle\toolchains\llvm\prebuilt\windows-x86_64\bin\armv7a-linux-androideabi21-clang.cmd -L dependency=C:\Users\steve\source\repos\bluefin_app\native\target\armv7-linux-androideabi\release\deps -L dependency=C:\Users\steve\source\repos\bluefin_app\native\target\release\deps --extern flutter_rust_bridge=C:\Users\steve\source\repos\bluefin_app\native\target\armv7-linux-androideabi\release\deps\libflutter_rust_bridge-4e590a2292676ab7.rlib --extern mbtileserver=C:\Users\steve\source\repos\bluefin_app\native\target\armv7-linux-androideabi\release\deps\libmbtileserver-03b1d89da763f428.rlib -L native=C:\Users\steve\source\repos\bluefin_app\native\target\armv7-linux-androideabi\release\build\flutter_rust_bridge-b15f19dc4c963835\out -L native=C:\Users\steve\source\flutter\bin -L native=C:\Users\steve\source\repos\bluefin_app\native\target\armv7-linux-androideabi\release\build\libsqlite3-sys-062c91c124378dbd\out`
error: linking with `P:\Android\android-sdk\ndk-bundle\toolchains\llvm\prebuilt\windows-x86_64\bin\armv7a-linux-androideabi21-clang.cmd` failed: exit code: 1
  |
  = note: "P:\\Android\\android-sdk\\ndk-bundle\\toolchains\\llvm\\prebuilt\\windows-x86_64\\bin\\armv7a-linux-androideabi21-clang.cmd" "-Wl,--version-script=C:\\Users\\steve\\AppData\\Local\\Temp\\rustcstduZe\\list" "-march=armv7-a" "C:\\Users\\steve\\AppData\\Local\\Temp\\rustcstduZe\\symbols.o" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\native.native.e6f76d20-cgu.0.rcgu.o" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\native.native.e6f76d20-cgu.1.rcgu.o" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\native.native.e6f76d20-cgu.10.rcgu.o" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\native.native.e6f76d20-cgu.11.rcgu.o" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\native.native.e6f76d20-cgu.12.rcgu.o" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\native.native.e6f76d20-cgu.13.rcgu.o" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\native.native.e6f76d20-cgu.14.rcgu.o" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\native.native.e6f76d20-cgu.15.rcgu.o" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\native.native.e6f76d20-cgu.2.rcgu.o" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\native.native.e6f76d20-cgu.3.rcgu.o" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\native.native.e6f76d20-cgu.4.rcgu.o" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\native.native.e6f76d20-cgu.5.rcgu.o" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\native.native.e6f76d20-cgu.6.rcgu.o" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\native.native.e6f76d20-cgu.7.rcgu.o" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\native.native.e6f76d20-cgu.8.rcgu.o" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\native.native.e6f76d20-cgu.9.rcgu.o" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\native.fms5fc3c5hw9sfq.rcgu.o" "-Wl,--as-needed" "-L" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps" "-L" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\release\\deps" "-L" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\build\\flutter_rust_bridge-b15f19dc4c963835\\out" "-L" "C:\\Users\\steve\\source\\flutter\\bin" "-L" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\build\\libsqlite3-sys-062c91c124378dbd\\out" "-L" "C:\\Users\\steve\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\armv7-linux-androideabi\\lib" "-Wl,-Bstatic" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libmbtileserver-03b1d89da763f428.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libpretty_env_logger-37f624d86e96021b.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libenv_logger-db67bce986dcebab.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libhumantime-8b044224356dc9a3.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libquick_error-12b1b7bbb276c5df.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\liburldecode-2fcda58ae8133c89.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libflate2-3a5bcda4e782f129.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libminiz_oxide-d583162a4a30c70c.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libadler-cc656165ca65c69a.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libcrc32fast-6d13dece02eeb499.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libasync_std-ce1f74cdc5b3b1d9.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libasync_global_executor-7ac82de516ec6998.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libblocking-9bdedac997d7f3e8.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libatomic_waker-73575e97180a7d45.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libasync_executor-944046aacfad8b62.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libasync_task-eee915a3e2163ff5.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libasync_io-a2c9bb5e75e1778b.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libpolling-40f02e667312a169.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libasync_channel-187effdffa92846a.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libconcurrent_queue-9aa4b6709208bad7.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libcrossbeam_utils-4588514293e7b562.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libasync_lock-8afbe2f23e1a898b.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libfutures_lite-5cc242b5cc1d3269.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libfastrand-1634e3bddf202ce3.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libfutures_io-0eea35ae3ecd2d1e.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libwaker_fn-bab2d2aa0f68ac08.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libparking-b4b91e19bd54adf0.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libevent_listener-d2b255f7de05f796.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libkv_log_macro-6371bab1b53ece6f.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libtilejson-c9616e8ef2697aa1.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libserde_tuple-b38448719afec077.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libr2d2_sqlite-458d285364fe859b.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libserde_json-05baae6789f21002.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libryu-df04c45226418961.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libserde-1a674955b4d840ec.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libregex-a3d0bac89a644ea2.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libaho_corasick-8c0da602c5eff8a8.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libregex_syntax-7d83b51a95130412.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libhyper-28568cbb1b933a97.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libhttparse-61ea225ba2ea20fb.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libh2-8347218747d6fb06.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libslab-b8f3187dd0f08c72.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libtokio_util-b3918790205b1c14.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libfutures_sink-b8b161d9f3fb96f7.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libtower_service-4788fa8f495312c8.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libtracing-a6848e55abf4e52c.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libtracing_core-f366e3ab5d5903cc.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libfutures_channel-a309c9a1b8e76598.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libhttp_body-803ffea7fa066e2b.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libfutures_util-d897e0b729843c40.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libfutures_task-f3d5d5a28014fcde.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libpin_utils-caef966879b4f78e.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libfutures_core-5f961ee0c0fe6e8a.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libtokio-cccc4e80ffb52e93.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libsignal_hook_registry-2c05715d1670dbaf.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libsocket2-6cd9d026a1d78e6e.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libmemchr-f53fae93868e41ea.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libmio-379054b80c2a7cc1.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libpin_project_lite-f8025f642973c753.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libhttpdate-b086da716291e11e.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libhttp-8b453e4ff314d0bf.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libitoa-f86b433debb0da6a.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libbytes-30108eec16d4fa00.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libfnv-c174dc9841a02663.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\librusqlite-1517ce0fe403debb.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libfallible_streaming_iterator-851b414d44350d55.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libfallible_iterator-5b633f8a2fffdce2.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libhashlink-5c1df02edc0c5159.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libhashbrown-c7179a118b449cf8.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libahash-1e1fa2e891b296b4.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libgetrandom-f4be222e1ec6d8cf.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\liblibsqlite3_sys-ec2b541cf1c1b55c.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libr2d2-b70bf4aa56f4ba2d.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libscheduled_thread_pool-7d9732359873ba1d.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libclap-c42e0f480e8af788.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libatty-4dc6b7784aa6491d.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libstrsim-8e8b3ef9282477dc.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libtermcolor-be90f3d2e85345b1.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libtextwrap-534cd5a29f3564f6.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libclap_lex-15c3aaacb340657b.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libos_str_bytes-4fc3568814238b37.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libindexmap-9208f5a5b0331ee0.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libhashbrown-2365c63860dc8101.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libbitflags-d0ca9121cf2d5a85.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libonce_cell-75a3a275b4b579ea.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libflutter_rust_bridge-4e590a2292676ab7.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libbytemuck-1f24334054135f53.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libthreadpool-10b35c506fcecaf7.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libnum_cpus-fb31401c53e844ac.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libparking_lot-432a6cea46248094.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libparking_lot_core-93a1b9c3b6b85861.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libsmallvec-f8a2ddf8989a7434.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\liblock_api-59aaacc5bf683f9f.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libscopeguard-3d4c390d3a0c201c.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\liblazy_static-50db4cad00c614d6.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libdart_sys-45a719334ee8f160.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\liballo_isolate-aff3a9153bf1b627.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libchrono-53ffe0096ba9158b.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libiana_time_zone-5ae0e6bedcf4577d.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libandroid_system_properties-3366514380902fae.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libnum_integer-2fa702b21fc42fdb.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libnum_traits-eab6c196fc4641aa.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libtime-fce5bfe73c4941e6.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\liblibc-12ce468bd1b42c7a.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libanyhow-e255498f92ebc500.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libatomic-7567037a1f138f6c.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\liblog-49c1b7be5e21f469.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libvalue_bag-1f1689f09699e50b.rlib" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libcfg_if-79dc29b6d4712ab4.rlib" "C:\\Users\\steve\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\armv7-linux-androideabi\\lib\\libstd-8926a4dbe1cfc54f.rlib" "C:\\Users\\steve\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\armv7-linux-androideabi\\lib\\libpanic_unwind-091f763b68b62d17.rlib" "C:\\Users\\steve\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\armv7-linux-androideabi\\lib\\libobject-02f94de503e5424b.rlib" "C:\\Users\\steve\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\armv7-linux-androideabi\\lib\\libmemchr-70d770af1d9c301a.rlib" "C:\\Users\\steve\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\armv7-linux-androideabi\\lib\\libaddr2line-ac9857f947b317cd.rlib" "C:\\Users\\steve\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\armv7-linux-androideabi\\lib\\libgimli-8c66adf82b492f27.rlib" "C:\\Users\\steve\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\armv7-linux-androideabi\\lib\\librustc_demangle-459459e966558dfa.rlib" "C:\\Users\\steve\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\armv7-linux-androideabi\\lib\\libstd_detect-d20d93553e9b2af6.rlib" "C:\\Users\\steve\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\armv7-linux-androideabi\\lib\\libhashbrown-3f64539495b142d6.rlib" "C:\\Users\\steve\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\armv7-linux-androideabi\\lib\\libminiz_oxide-24f10bf06800a3cb.rlib" "C:\\Users\\steve\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\armv7-linux-androideabi\\lib\\libadler-171fbc31e8d0aecd.rlib" "C:\\Users\\steve\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\armv7-linux-androideabi\\lib\\librustc_std_workspace_alloc-3dbd1452d748a00f.rlib" "C:\\Users\\steve\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\armv7-linux-androideabi\\lib\\libunwind-b09e3f61c22ca3a1.rlib" "C:\\Users\\steve\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\armv7-linux-androideabi\\lib\\libcfg_if-6ee2a34f2b55d0f0.rlib" "C:\\Users\\steve\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\armv7-linux-androideabi\\lib\\liblibc-ccbd17e33450d0f5.rlib" "C:\\Users\\steve\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\armv7-linux-androideabi\\lib\\liballoc-0a1b23654dfa98fb.rlib" "C:\\Users\\steve\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\armv7-linux-androideabi\\lib\\librustc_std_workspace_core-8bf8e499b1299330.rlib" "C:\\Users\\steve\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\armv7-linux-androideabi\\lib\\libcore-8ce153e1d9456f37.rlib" "C:\\Users\\steve\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\armv7-linux-androideabi\\lib\\libcompiler_builtins-2407ae3fd59d6e74.rlib" "-Wl,-Bdynamic" "-ldart" "-ldl" "-llog" "-lgcc" "-ldl" "-lm" "-lc" "-Wl,--eh-frame-hdr" "-Wl,-znoexecstack" "-L" "C:\\Users\\steve\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\armv7-linux-androideabi\\lib" "-o" "C:\\Users\\steve\\source\\repos\\bluefin_app\\native\\target\\armv7-linux-androideabi\\release\\deps\\libnative.so" "-Wl,--gc-sections" "-shared" "-Wl,-zrelro,-znow" "-Wl,-O1" "-nodefaultlibs"
  = note: ld: error: unable to find library -ldart
          clang: error: linker command failed with exit code 1 (use -v to see invocation)


error: could not compile `native` due to previous error

Caused by:
  process didn't exit successfully: `rustc --crate-name native --edition=2021 src\lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type staticlib --crate-type cdylib --emit=dep-info,link -C opt-level=3 -C embed-bitcode=no -C metadata=3ce52755af7faa6b --out-dir C:\Users\steve\source\repos\bluefin_app\native\target\armv7-linux-androideabi\release\deps --target armv7-linux-androideabi -C linker=P:\Android\android-sdk\ndk-bundle\toolchains\llvm\prebuilt\windows-x86_64\bin\armv7a-linux-androideabi21-clang.cmd -L dependency=C:\Users\steve\source\repos\bluefin_app\native\target\armv7-linux-androideabi\release\deps -L dependency=C:\Users\steve\source\repos\bluefin_app\native\target\release\deps --extern flutter_rust_bridge=C:\Users\steve\source\repos\bluefin_app\native\target\armv7-linux-androideabi\release\deps\libflutter_rust_bridge-4e590a2292676ab7.rlib --extern mbtileserver=C:\Users\steve\source\repos\bluefin_app\native\target\armv7-linux-androideabi\release\deps\libmbtileserver-03b1d89da763f428.rlib -L native=C:\Users\steve\source\repos\bluefin_app\native\target\armv7-linux-androideabi\release\build\flutter_rust_bridge-b15f19dc4c963835\out -L native=C:\Users\steve\source\flutter\bin -L native=C:\Users\steve\source\repos\bluefin_app\native\target\armv7-linux-androideabi\release\build\libsqlite3-sys-062c91c124378dbd\out` (exit code: 1)
[2022-12-10T10:23:00Z INFO  cargo_ndk::cli] If the build failed due to a missing target, you can run this command:
[2022-12-10T10:23:00Z INFO  cargo_ndk::cli]
[2022-12-10T10:23:00Z INFO  cargo_ndk::cli]     rustup target install armv7-linux-androideabi

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:cargoBuildRelease'.
> Process 'command 'cargo'' finished with non-zero exit value 101

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 2m 49s
Running Gradle task 'assembleRelease'...                          172.6s
Exception: Gradle task assembleRelease failed with exit code 1
#0      throwToolExit (package:flutter_tools/src/base/common.dart:10:3)
#1      AndroidGradleBuilder.buildGradleApp (package:flutter_tools/src/android/gradle.dart:408:9)
<asynchronous suspension>
#2      AndroidGradleBuilder.buildApk (package:flutter_tools/src/android/gradle.dart:184:5)
<asynchronous suspension>
#3      AndroidDevice.startApp (package:flutter_tools/src/android/android_device.dart:575:7)
<asynchronous suspension>
#4      FlutterDevice.runCold (package:flutter_tools/src/resident_runner.dart:504:33)
<asynchronous suspension>
#5      ColdRunner.run (package:flutter_tools/src/run_cold.dart:57:28)
<asynchronous suspension>
#6      RunCommand.runCommand (package:flutter_tools/src/commands/run.dart:706:27)
<asynchronous suspension>
#7      FlutterCommand.run.<anonymous closure> (package:flutter_tools/src/runner/flutter_command.dart:1209:27)
<asynchronous suspension>
#8      AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:150:19)
<asynchronous suspension>
#9      CommandRunner.runCommand (package:args/command_runner.dart:209:13)
<asynchronous suspension>
#10     FlutterCommandRunner.runCommand.<anonymous closure> (package:flutter_tools/src/runner/flutter_command_runner.dart:281:9)
<asynchronous suspension>
#11     AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:150:19)
<asynchronous suspension>
#12     FlutterCommandRunner.runCommand (package:flutter_tools/src/runner/flutter_command_runner.dart:229:5)
<asynchronous suspension>
#13     run.<anonymous closure>.<anonymous closure> (package:flutter_tools/runner.dart:62:9)
<asynchronous suspension>
#14     AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:150:19)
<asynchronous suspension>
#15     main (package:flutter_tools/executable.dart:91:3)
<asynchronous suspension>

@rob-mur
Copy link

rob-mur commented Dec 10, 2022

Don't personally recognise ldart so unsure why it would be missing/a problem.

Does the crate build if you just run cargo build in the rust project?

I would try a full clean i.e. flutter pub cache clean and cargo clean before trying to rebuild to see if that helps.

Then if not potentially try building the example project on your pc to see if it's specific to your project or not.

@stevehayles
Copy link

It's a strange one, I agree probably something around my specific problem. Just for other people's information, a full clean and rebuild on both the Flutter and Rust side does not fix it.

Reverting back to version 1.51 of all packages is an instant fix, I'll try the sample project and move my project to another machine to see if it becomes clearer.

Thanks for your help to date

@gjf2a
Copy link
Author

gjf2a commented Dec 10, 2022

I upgraded to 1.54.0 and everything seems to work again.

I ran the following, inspired by what was suggested above:

  • cargo install flutter_rust_bridge_codegen
  • flutter clean
  • flutter pub cache clean
  • flutter pub get
  • flutter_rust_bridge_codegen --rust-input src\api.rs --dart-output ..\lib\bridge_generated.dart --dart-decl-output ..\lib\bridge_definitions.dart
  • cargo clean
  • cargo ndk -o ..\android\app\src\main\jniLibs build --release
  • flutter run

I would personally be happy to close the issue, but enough other discussion has happened that I wouldn't want to shut it down unilaterally.

Thanks to everyone for your help!

@rob-mur
Copy link

rob-mur commented Dec 10, 2022

I would also like to keep it open a little longer as now having some problems with my web builds - may be entirely unrelated but want to double check first!

@rob-mur
Copy link

rob-mur commented Dec 11, 2022

Was indeed unrelated - happy for this to be closed!

@gjf2a
Copy link
Author

gjf2a commented Dec 11, 2022

I will close this on Tuesday morning if nobody else sees a reason for it to remain open.

@stevehayles
Copy link

stevehayles commented Dec 12, 2022

This appears to be a problem that effects Windows machines, I can compile my fairly complex project and the basic example in a linux container but neither will compile on my Windows laptop under 1.53 or 1.54.

In this code it appears that there needs to be a compiler flag set on Windows to statically link dart.lib. I am a fairly new Rust 'guy' and can't quite see how to fix this from my application code but I do think it's a persistent problem that will be seen again within FRB

It's slightly drifted off-topic from the original issue raised here but the version numbers are relevant so it would be great to get one of the core team to have a look at it

@rob-mur
Copy link

rob-mur commented Dec 12, 2022

My working version is being built on Linux (both locally and in CI) so could well be a windows thing.

I can see the build.rs differs from the one described in the user guide. Is it possible to try your usecase using frb_codegen?

@stevehayles
Copy link

The rust binary builds without issue, the issue comes when running cargo ndk -o ../android/app/src/main/jniLibs build. Pulling the FRB repo and using the 'with-flutter' example has exactly the same problem on Windows and that has appeared since 1.53.

In the dart_sys github repo there is a comment that states "According to https://dart.dev/server/c-interop-native-extensions#appendix-compiling-and-linking-extensions only on windows we need linking with dart.lib, so we can simply skip this step on unix."

That original link is now replaced but I have read about dart.lib needing to be linked on Windows only in other places online and I am fairly sure it's where the issue lies here

@stevehayles
Copy link

I think I have found the problem! Since the inclusion of the dart-sys package the dart.lib library needs linking but only on Windows targets. Looking at the dart-sys source code the build.rs script is aware of this and tries to deal with it

#[cfg(windows)]
fn emit_compiler_flags() {
    let dart_path = match find_dart_sdk() {
        Some(x) => x,
        None => panic!("Could not find dart sdk!")
    };
    let dart_path = PathBuf::from(dart_path);
    println!(r#"cargo:rustc-link-search=native={}"#, dart_path.join("bin").to_str().unwrap());
    println!(r"cargo:rustc-link-lib=dart");
....

The issue is that in a build.rs file the cfg(windows) attribute relates to the host and not the target so even though we are targetting an Android OS the cargo:rustc-link-lib=dart call is trying to link the dart library. I have fixed it locally by modifying the dart-sys build.rs file as follows

fn emit_compiler_flags() {
    let target_os = env::var("CARGO_CFG_TARGET_OS");
    match target_os.as_ref().map(|x| &**x) {
        Ok("windows") => {
            let dart_path = match find_dart_sdk() {
                Some(x) => x,
                None => panic!("Could not find dart sdk!")
            };
            let dart_path = PathBuf::from(dart_path);
            println!(r#"cargo:rustc-link-search=native={}"#, dart_path.join("bin").to_str().unwrap());
            println!(r"cargo:rustc-link-lib=dart");
        }
        _ => println!("Target OS is not windows")
    }
}

I have checked that this correctly still works targetting Windows. I can try and create a pull request to dart-sys but I would like someone more conversant with this library than me to comment on whether that's the right way to fix it

@gjf2a
Copy link
Author

gjf2a commented Dec 13, 2022

Thanks @stevehayles. I recompiled again today, and I actually ran into this same problem - it looks like my previous posting of success was premature. Still not sure why it worked one day and failed another. So it goes. Even reverting to 1.51.0 did not solve the problem.

Here's the linker error message:

ld: error: unable to find library -ldart

Looking forward to the patch.

@stevehayles
Copy link

@gjf2a I was very surprised that you had not seen the issue on Windows in version +1.53 as it seemed to be a fairly certain bug. I have created a PR for my suggestion of a fix in the dart-sys library but it's a third party library that hasn't been touched in three years so we will have to see how that goes...

If it's not successful then the owners of FRB can make a call on whether they fork that library or include it's code directly. It is clear that the problem exists for anyone developing or compiling on windows and it would be great to get it fixed properly

@gjf2a
Copy link
Author

gjf2a commented Dec 13, 2022

@stevehayles actually my problems began when I upgraded to 1.53. At 1.51, where I had been until last week, everything had worked fine. I'm currently struggling to revert - no matter what I do, it keeps using 1.54 when I'm compiling with Rust. I've cargo-cleaned, cleaned the cargo cache, deleted the git and registry directories, even deleted my project and re-cloned from GitHub. I'm ready to try uninstalling Rust entirely and reinstalling it, but I have so much in place for various projects that I am loath to do so.

@stevehayles
Copy link

I've seen similar issues, normally manually deleting the obvious files from your ~/.cargo directory can solve this sort of problem. Rust almost exclusively uses this for packages and binaries.

@gjf2a
Copy link
Author

gjf2a commented Dec 13, 2022

Yeah, I've had success with that in the past. But I've deleted git, registry, and .package-cache. I can't fathom where else it is hanging on to this.

@fzyzcjy
Copy link
Owner

fzyzcjy commented Dec 14, 2022

If it's not successful then the owners of FRB can make a call on whether they fork that library or include it's code directly

/cc @rogurotus What do you think?

@gutenfries
Copy link
Contributor

+1 same issue

@rogurotus
Copy link
Contributor

I think we just need to remove dart_sys

@rogurotus rogurotus mentioned this issue Dec 14, 2022
5 tasks
@rogurotus
Copy link
Contributor

@stevehayles actually my problems began when I upgraded to 1.53. At 1.51, where I had been until last week, everything had worked fine. I'm currently struggling to revert - no matter what I do, it keeps using 1.54 when I'm compiling with Rust. I've cargo-cleaned, cleaned the cargo cache, deleted the git and registry directories, even deleted my project and re-cloned from GitHub. I'm ready to try uninstalling Rust entirely and reinstalling it, but I have so much in place for various projects that I am loath to do so.

have you tried this?
cargo install flutter_rust_bridge_codegen --version 1.51.0

@gutenfries
Copy link
Contributor

@rogurotus I've tried this already and it did not help.
image

@stevehayles
Copy link

Try running cargo build --verbose after a cargo clean and you should be able to see from the output where the files are being built from at least. Within the .cargo/registry/src/ folders you can edit source files for a quick and dirty hack to try to test things and the fix from #890 would be very easy to apply manually to get something building quickly

@gutenfries
Copy link
Contributor

Try running cargo build --verbose after a cargo clean and you should be able to see from the output where the files are being built from at least. Within the .cargo/registry/src/ folders you can edit source files for a quick and dirty hack to try to test things and the fix from #890 would be very easy to apply manually to get something building quickly

see #893

@fzyzcjy
Copy link
Owner

fzyzcjy commented Dec 15, 2022

1.54.1 is released

@gjf2a
Copy link
Author

gjf2a commented Dec 15, 2022

1.54.1 did the trick!

I will leave this open for a day or two in case any related troubles emerge again.

Thanks everyone for all your help!

@stevehayles
Copy link

I can confirm that dropping all previous changes and updating to 1.54.1 solves the issue for me. Thanks to @rogurotus for the fix and everyone else for their help

@gjf2a gjf2a closed this as completed Dec 16, 2022
@github-actions
Copy link
Contributor

This thread has been automatically locked since there has not been any recent activity after it was closed. If you are still experiencing a similar issue, please open a new issue.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Dec 30, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

6 participants