jakobhellermann / bevy-inspector-egui

Inspector plugin for the bevy game engine
Apache License 2.0
1.1k stars 164 forks source link

Unable to build on android target due to `arboard` #162

Closed agjini closed 7 months ago

agjini commented 7 months ago

When trying to build a little bevy project on android target, it fails to build arboard crate to this target.

target is aarch64-linux-android

Here is the project to reproduces the error game_of_life android branch

❯ cargo apk build
Using package `app` in `/home/agjini/workspace/perso/game_of_life/app/Cargo.toml`
   Compiling serde v1.0.188
   Compiling tracing v0.1.37
   Compiling oboe-sys v0.5.0
   Compiling arboard v3.2.1
   Compiling bevy-inspector-egui-derive v0.21.0
   Compiling webbrowser v0.8.11
error[E0433]: failed to resolve: could not find `Clipboard` in `platform`
  --> /home/agjini/.cargo/registry/src/index.crates.io-6f17d22bba15001f/arboard-3.2.1/src/lib.rs:68:38
   |
68 |         Ok(Clipboard { platform: platform::Clipboard::new()? })
   |                                            ^^^^^^^^^ could not find `Clipboard` in `platform`

error[E0433]: failed to resolve: could not find `Clear` in `platform`
   --> /home/agjini/.cargo/registry/src/index.crates.io-6f17d22bba15001f/arboard-3.2.1/src/lib.rs:122:31
    |
122 |         Clear { platform: platform::Clear::new(&mut self.platform) }
    |                                     ^^^^^ could not find `Clear` in `platform`

error[E0433]: failed to resolve: could not find `Get` in `platform`
   --> /home/agjini/.cargo/registry/src/index.crates.io-6f17d22bba15001f/arboard-3.2.1/src/lib.rs:127:29
    |
127 |         Get { platform: platform::Get::new(&mut self.platform) }
    |                                   ^^^ could not find `Get` in `platform`

error[E0433]: failed to resolve: could not find `Set` in `platform`
   --> /home/agjini/.cargo/registry/src/index.crates.io-6f17d22bba15001f/arboard-3.2.1/src/lib.rs:132:29
    |
132 |         Set { platform: platform::Set::new(&mut self.platform) }
    |                                   ^^^ could not find `Set` in `platform`

error[E0412]: cannot find type `Clipboard` in module `platform`
  --> /home/agjini/.cargo/registry/src/index.crates.io-6f17d22bba15001f/arboard-3.2.1/src/lib.rs:62:33
   |
62 |     pub(crate) platform: platform::Clipboard,
   |                                    ^^^^^^^^^ not found in `platform`

error[E0412]: cannot find type `Get` in module `platform`
   --> /home/agjini/.cargo/registry/src/index.crates.io-6f17d22bba15001f/arboard-3.2.1/src/lib.rs:139:33
    |
139 |     pub(crate) platform: platform::Get<'clipboard>,
    |                                    ^^^ not found in `platform`

error[E0412]: cannot find type `Set` in module `platform`
   --> /home/agjini/.cargo/registry/src/index.crates.io-6f17d22bba15001f/arboard-3.2.1/src/lib.rs:163:33
    |
163 |     pub(crate) platform: platform::Set<'clipboard>,
    |                                    ^^^ not found in `platform`

error[E0412]: cannot find type `Clear` in module `platform`
   --> /home/agjini/.cargo/registry/src/index.crates.io-6f17d22bba15001f/arboard-3.2.1/src/lib.rs:204:33
    |
204 |     pub(crate) platform: platform::Clear<'clipboard>,
    |                                    ^^^^^ not found in `platform`

Some errors have detailed explanations: E0412, E0433.
For more information about an error, try `rustc --explain E0412`.
error: could not compile `arboard` (lib) due to 8 previous errors
warning: build failed, waiting for other jobs to finish...
Error: Command `AR_aarch64-linux-android=/home/agjini/Android/Sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ar CARGO_ENCODED_RUSTFLAGS=-Clink-arg=--tar
get=aarch64-linux-android23\u{1f}-L\u{1f}/home/agjini/workspace/perso/game_of_life/target/cargo-apk-temp-extra-link-libraries CARGO_TARGET_AARCH64_LINUX_ANDROID_AR=/home/agji
ni/Android/Sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ar CARGO_TARGET_AARCH64_LINUX_ANDROID_LINKER=/home/agjini/Android/Sdk/ndk/26.1.10909125/toolch
ains/llvm/prebuilt/linux-x86_64/bin/clang CC_aarch64-linux-android=/home/agjini/Android/Sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/linux-x86_64/bin/clang CFLAGS_aarch64-l
inux-android=--target=aarch64-linux-android23 CXXFLAGS_aarch64-linux-android=--target=aarch64-linux-android23 CXX_aarch64-linux-android=/home/agjini/Android/Sdk/ndk/26.1.1090
9125/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ cargo build --target aarch64-linux-android` had a non-zero exit code.
agjini commented 7 months ago

After removing bevy-inspector-egui dependency, the apk is built without any trouble.

jakobhellermann commented 7 months ago

Arboard is a dependency of bevy_egui https://github.com/mvlabat/bevy_egui/blob/84424bd547afdf5730deb356bcff6e99ad660fdb/Cargo.toml#L33 so it's probably best to open an issue there.

agjini commented 7 months ago

Ok, good point.

An issue is already open on the subject on bevy_egui. So I close it on bevy inspector

https://github.com/mvlabat/bevy_egui/issues/198