Strange android emulator rust compiler error -- new to rust, please help

Hey guys,

Im having an issue with compiling a part of the build written in rust. Namely, compiler error says that my cargo.lock file is corrupt, whether or not i regenererated it via cargo generate-lockfile or edited it myself.

Here is the full output of the error:

[

4295/9992] Building CXX object android/third_party/grpc/grpc_cpp_plugin_ext/CMakeFiles/grpc_plugin_support.dir/D_/emu/external/grpc/src/compiler/node_generator.cc.obj
[4296/9992] Building CXX object android/third_party/grpc/grpc_cpp_plugin_ext/CMakeFiles/grpc_plugin_support.dir/D_/emu/external/grpc/src/compiler/objective_c_generator.cc.obj
[4296/9992] cmd.exe /C "cd /D D:\emu\external\qemu\android\objs && D:\emu\prebuilts\cmake\windows-x86\bin\cmake.exe -E make_directory D:/emu/external/qemu/android/objs/android/third_party/netsim/rust && D:\emu\prebuilts\cmake\windows-x86\bin\cmake.exe -E env CARGO_HOME=D:/emu/external/qemu/android/objs/rust/.cargo "CXXFLAGS=/DWIN32 /D_WINDOWS /W3 /GR /EHsc -std:c++17 -O2 -MD -Wno-everything -GS- -GR -w -Wno-invalid-offsetof -Wno-implicit-int-float-conversion /DRUST_CXX_NO_EXCEPTIONS" RUSTFLAGS=" -Cdefault-linker-libraries=yes" CC_x86_64-pc-windows-msvc=D:/emu/external/qemu/android/objs/cc.exe HOST_CC=D:/emu/external/qemu/android/objs/cc.exe CXX_x86_64-pc-windows-msvc=D:/emu/external/qemu/android/objs/cc.exe HOST_CXX=D:/emu/external/qemu/android/objs/cc.exe RUSTC_WRAPPER="D:/emu/prebuilts/android-emulator-build/common/sccache/windows-x86_64/sccache.EXE" CORROSION_BUILD_DIR=D:/emu/external/qemu/android/objs/android/third_party/netsim/rust CARGO_BUILD_RUSTC="C:/ProgramData/chocolatey/bin/rustc.exe" C:/ProgramData/chocolatey/bin/cargo.exe build --target=x86_64-pc-windows-msvc --package frontend-client-cxx --manifest-path D:/emu/tools/netsim/rust/frontend-client-cxx/Cargo.toml --offline --verbose --release && D:\emu\prebuilts\cmake\windows-x86\bin\cmake.exe -E copy_if_different D:/emu/external/qemu/android/objs/./cargo/build/x86_64-pc-windows-msvc/release/frontend_client_cxx.lib D:/emu/external/qemu/android/objs/android/third_party/netsim/rust"
warning: Patch `anyhow v1.0.69 (D:\emu\external\rust\crates\anyhow)` was not used in the crate graph.
Patch `argh v0.1.10 (D:\emu\external\rust\crates\argh)` was not used in the crate graph.
Patch `argh_derive v0.1.10 (D:\emu\external\rust\crates\argh_derive)` was not used in the crate graph.
Patch `argh_shared v0.1.10 (D:\emu\external\rust\crates\argh_shared)` was not used in the crate graph.
Patch `atty v0.2.14 (D:\emu\external\rust\crates\atty)` was not used in the crate graph.
Patch `bindgen v0.64.0 (D:\emu\external\rust\crates\bindgen)` was not used in the crate graph.
Patch `bytes v1.4.0 (D:\emu\external\rust\crates\bytes)` was not used in the crate graph.
Patch `cexpr v0.6.0 (D:\emu\external\rust\crates\cexpr)` was not used in the crate graph.
Patch `clang-sys v1.4.0 (D:\emu\external\rust\crates\clang-sys)` was not used in the crate graph.
Patch `crossbeam-channel v0.5.7 (D:\emu\external\rust\crates\crossbeam-channel)` was not used in the crate graph.
Patch `crossbeam-deque v0.8.3 (D:\emu\external\rust\crates\crossbeam-deque)` was not used in the crate graph.
Patch `crossbeam-epoch v0.9.14 (D:\emu\external\rust\crates\crossbeam-epoch)` was not used in the crate graph.
Patch `crossbeam-utils v0.8.15 (D:\emu\external\rust\crates\crossbeam-utils)` was not used in the crate graph.
Patch `either v1.8.1 (D:\emu\external\rust\crates\either)` was not used in the crate graph.
Patch `env_logger v0.10.0 (D:\emu\external\rust\crates\env_logger)` was not used in the crate graph.
Patch `fastrand v1.9.0 (D:\emu\external\rust\crates\fastrand)` was not used in the crate graph.
Patch `futures-core v0.3.26 (D:\emu\external\rust\crates\futures-core)` was not used in the crate graph.
Patch `futures-sink v0.3.26 (D:\emu\external\rust\crates\futures-sink)` was not used in the crate graph.
Patch `glam v0.23.0 (D:\emu\external\rust\crates\glam)` was not used in the crate graph.
Patch `glob v0.3.1 (D:\emu\external\rust\crates\glob)` was not used in the crate graph.
Patch `hashbrown v0.12.3 (D:\emu\external\rust\crates\hashbrown)` was not used in the crate graph.
Patch `hermit-abi v0.2.6 (D:\emu\external\qemu\android\build\cmake\rust\crates\hermit-abi)` was not used in the crate graph.
Patch `hex v0.4.3 (D:\emu\external\rust\crates\hex)` was not used in the crate graph.
Patch `indexmap v1.9.2 (D:\emu\external\rust\crates\indexmap)` was not used in the crate graph.
Patch `instant v0.1.12 (D:\emu\external\rust\crates\instant)` was not used in the crate graph.
Patch `itoa v1.0.5 (D:\emu\external\rust\crates\itoa)` was not used in the crate graph.
Patch `lazycell v1.3.0 (D:\emu\external\rust\crates\lazycell)` was not used in the crate graph.
Patch `libloading v0.7.4 (D:\emu\external\rust\crates\libloading)` was not used in the crate graph.
Patch `log v0.4.17 (D:\emu\external\rust\crates\log)` was not used in the crate graph.
Patch `memoffset v0.8.0 (D:\emu\external\rust\crates\memoffset)` was not used in the crate graph.
Patch `minimal-lexical v0.2.1 (D:\emu\external\rust\crates\minimal-lexical)` was not used in the crate graph.
Patch `mio v0.8.6 (D:\emu\external\rust\crates\mio)` was not used in the crate graph.
Patch `nom v7.1.3 (D:\emu\external\rust\crates\nom)` was not used in the crate graph.
Patch `num-bigint v0.4.3 (D:\emu\external\rust\crates\num-bigint)` was not used in the crate graph.
Patch `num-derive v0.3.3 (D:\emu\external\rust\crates\num-derive)` was not used in the crate graph.
Patch `num_cpus v1.15.0 (D:\emu\external\rust\crates\num_cpus)` was not used in the crate graph.
Patch `paste v1.0.11 (D:\emu\external\rust\crates\paste)` was not used in the crate graph.
Patch `peeking_take_while v1.0.0 (D:\emu\external\rust\crates\peeking_take_while)` was not used in the crate graph.
Patch `pest v2.5.5 (D:\emu\external\rust\crates\pest)` was not used in the crate graph.
Patch `pest_derive v2.5.5 (D:\emu\external\rust\crates\pest_derive)` was not used in the crate graph.
Patch `pest_generator v2.5.5 (D:\emu\external\rust\crates\pest_generator)` was not used in the crate graph.
Patch `pest_meta v2.5.5 (D:\emu\external\rust\crates\pest_meta)` was not used in the crate graph.
Patch `pica v0.1.2 (D:\emu\external\rust\crates\pica)` was not used in the crate graph.
Patch `pin-project-lite v0.2.9 (D:\emu\external\rust\crates\pin-project-lite)` was not used in the crate graph.
Patch `pin-utils v0.1.0 (D:\emu\external\rust\crates\pin-utils)` was not used in the crate graph.
Patch `protobuf-codegen v3.2.0 (D:\emu\external\rust\crates\protobuf-codegen)` was not used in the crate graph.
Patch `rayon v1.7.0 (D:\emu\external\rust\crates\rayon)` was not used in the crate graph.
Patch `rayon-core v1.11.0 (D:\emu\external\rust\crates\rayon-core)` was not used in the crate graph.
Patch `redox_syscall v0.2.9 (D:\emu\external\qemu\android\build\cmake\rust\crates\redox_syscall)` was not used in the crate graph.
Patch `rustc-hash v1.1.0 (D:\emu\external\rust\crates\rustc-hash)` was not used in the crate graph.
Patch `ryu v1.0.13 (D:\emu\external\rust\crates\ryu)` was not used in the crate graph.
Patch `same-file v1.0.6 (D:\emu\external\rust\crates\same-file)` was not used in the crate graph.
Patch `scopeguard v1.1.0 (D:\emu\external\rust\crates\scopeguard)` was not used in the crate graph.
Patch `serde v1.0.152 (D:\emu\external\rust\crates\serde)` was not used in the crate graph.
Patch `serde_derive v1.0.152 (D:\emu\external\rust\crates\serde_derive)` was not used in the crate graph.
Patch `serde_json v1.0.93 (D:\emu\external\rust\crates\serde_json)` was not used in the crate graph.
Patch `sha2 v0.10.0 (D:\emu\external\qemu\android\build\cmake\rust\crates\sha2)` was not used in the crate graph.
Patch `shlex v1.1.0 (D:\emu\external\rust\crates\shlex)` was not used in the crate graph.
Patch `socket2 v0.4.7 (D:\emu\external\rust\crates\socket2)` was not used in the crate graph.
Patch `tempfile v3.3.0 (D:\emu\external\qemu\android\build\cmake\rust\crates\tempfile)` was not used in the crate graph.
Patch `textwrap v0.16.0 (D:\emu\external\rust\crates\textwrap)` was not used in the crate graph.
Patch `tokio v1.25.0 (D:\emu\external\rust\crates\tokio)` was not used in the crate graph.
Patch `tokio-macros v1.8.2 (D:\emu\external\rust\crates\tokio-macros)` was not used in the crate graph.
Patch `tokio-stream v0.1.12 (D:\emu\external\rust\crates\tokio-stream)` was not used in the crate graph.
Patch `tokio-util v0.7.7 (D:\emu\external\rust\crates\tokio-util)` was not used in the crate graph.
Patch `ucd-trie v0.1.5 (D:\emu\external\rust\crates\ucd-trie)` was not used in the crate graph.
Patch `walkdir v2.3.3 (D:\emu\external\rust\crates\walkdir)` was not used in the crate graph.
Patch `which v4.4.0 (D:\emu\external\rust\crates\which)` was not used in the crate graph.
Patch `windows-sys v0.45.0 (D:\emu\external\qemu\android\build\cmake\rust\crates\windows-sys)` was not used in the crate graph.
Check that the patched package version and available features are compatible
with the dependency requirements. If the patch has a different version from
what is locked in the Cargo.lock file, run `cargo update` to use the new
version. This may also occur with an optional dependency that is not enabled.
error: checksum for `cc v1.0.73` changed between lock files

this could be indicative of a few possible errors:

* the lock file is corrupt
* a replacement source in use (e.g., a mirror) returned a different checksum
* the source itself may be corrupt in one way or another

unable to verify that `cc v1.0.73` is the same as when the lockfile was generated

[4323/9992] Building CXX object android/third_party/mynewt-nimble/porting/npl/android_emulator/CMakeFiles/test_npl_sem.dir/test/test_npl_sem.cc.obj
FAILED: android/third_party/netsim/rust/CMakeFiles/cargo-build_frontend-client-cxx android/third_party/netsim/rust/frontend_client_cxx.lib D:/emu/external/qemu/android/objs/android/third_party/netsim/rust/CMakeFiles/cargo-build_frontend-client-cxx D:/emu/external/qemu/android/objs/android/third_party/netsim/rust/frontend_client_cxx.lib
cmd.exe /C "cd /D D:\emu\external\qemu\android\objs && D:\emu\prebuilts\cmake\windows-x86\bin\cmake.exe -E make_directory D:/emu/external/qemu/android/objs/android/third_party/netsim/rust && D:\emu\prebuilts\cmake\windows-x86\bin\cmake.exe -E env CARGO_HOME=D:/emu/external/qemu/android/objs/rust/.cargo "CXXFLAGS=/DWIN32 /D_WINDOWS /W3 /GR /EHsc -std:c++17 -O2 -MD -Wno-everything -GS- -GR -w -Wno-invalid-offsetof -Wno-implicit-int-float-conversion /DRUST_CXX_NO_EXCEPTIONS" RUSTFLAGS=" -Cdefault-linker-libraries=yes" CC_x86_64-pc-windows-msvc=D:/emu/external/qemu/android/objs/cc.exe HOST_CC=D:/emu/external/qemu/android/objs/cc.exe CXX_x86_64-pc-windows-msvc=D:/emu/external/qemu/android/objs/cc.exe HOST_CXX=D:/emu/external/qemu/android/objs/cc.exe RUSTC_WRAPPER="D:/emu/prebuilts/android-emulator-build/common/sccache/windows-x86_64/sccache.EXE" CORROSION_BUILD_DIR=D:/emu/external/qemu/android/objs/android/third_party/netsim/rust CARGO_BUILD_RUSTC="C:/ProgramData/chocolatey/bin/rustc.exe" C:/ProgramData/chocolatey/bin/cargo.exe build --target=x86_64-pc-windows-msvc --package frontend-client-cxx --manifest-path D:/emu/tools/netsim/rust/frontend-client-cxx/Cargo.toml --offline --verbose --release && D:\emu\prebuilts\cmake\windows-x86\bin\cmake.exe -E copy_if_different D:/emu/external/qemu/android/objs/./cargo/build/x86_64-pc-windows-msvc/release/frontend_client_cxx.lib D:/emu/external/qemu/android/objs/android/third_party/netsim/rust"
[4325/9992] Building CXX object android/third_party/mynewt-nimble/porting/npl/android_emulator/CMakeFiles/_nimble_os_impl.dir/src/os_time.cc.obj
[4326/9992] Building C object android/third_party/mynewt-nimble/ext/tinycrypt/CMakeFiles/_nimble_tinycrypt.dir/src/aes_encrypt.c.obj
[4327/9992] Building CXX object android/third_party/mynewt-nimble/porting/npl/android_emulator/CMakeFiles/test_npl_task.dir/test/test_npl_task.cc.obj
[4328/9992] Linking CXX static library archives\grpc_unsecure.lib
[4329/9992] Building C object android/third_party/mynewt-nimble/ext/tinycrypt/CMakeFiles/_nimble_tinycrypt.dir/src/cbc_mode.c.obj
[4330/9992] Building C object android/third_party/mynewt-nimble/ext/tinycrypt/CMakeFiles/_nimble_tinycrypt.dir/src/aes_decrypt.c.obj
[4331/9992] Building CXX object android/third_party/mynewt-nimble/porting/npl/android_emulator/CMakeFiles/_nimble_os_impl.dir/src/os_task.cc.obj
[4332/9992] Building CXX object android/third_party/mynewt-nimble/porting/npl/android_emulator/CMakeFiles/_nimble_os_sysinit.dir/src/os_sysinit.cc.obj
[4333/9992] Linking CXX static library archives\grpc.lib
ninja: build stopped: subcommand failed.
Build failure due to D:\emu\prebuilts\cmake\windows-x86\bin\cmake.EXE --build D:\emu\external\qemu\android\objs --target install Status: 1 != 0

i tried manually updating shasums in .cargo-checksum.json, and Cargo.lock, generating it via Cargo generate-lockfile, deleting cached build, etc...
But none of the actions seemed to take effect

Are you able to build something simple?

this isn't a simple codebase
But yeah
I dont have issue with building simple projects

What happens if you delete or rename Cargo.lock then run cargo build?

Still the same error.
Sorry for late response

it seems you have bad workspace configuration. what is the contents of top level Cargo.toml, it also might be relevant that you have bad cargo registry configuration. what is the content of %CARGO_HOME%\config.toml?

This topic was automatically closed 90 days after the last reply. We invite you to open a new topic if you have further questions or comments.