mozilla / rust-android-gradle

Apache License 2.0
1.03k stars 67 forks source link

cargoBuild error #76

Closed Jomy10 closed 2 years ago

Jomy10 commented 2 years ago

Hi,

I'm trying to build a rust library to Android. I have already successfully build the library for iOS. When I follow the steps in this tutorial, I get an error while building. Here's what I have done:

In my root build.gradle:

buildscript {
    repositories {
        // ...
        maven {
            url "https://plugins.gradle.org/m2/"
        }
    }
    dependencies {
        // ...
        classpath 'org.mozilla.rust-android-gradle:plugin:0.9.0'
    }
}
// ...

In my project's build.gradle:

// ...
apply plugin: 'org.mozilla.rust-android-gradle.rust-android'
cargo {
    module  = "/Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine"
    libname = "encoding_engine"[package] name.
    targets = ["arm", "arm64", "x86", "x86_64"]options
}

I have also added all the targets to rustup.

When I then ran ./gradlew cargoBuild, I got an error, so I ran:

./gradlew cargoBuild --stacktrace

And This is the output I got:

> Configure project :app
WARNING: NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [23.1.7779620] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir
NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [23.1.7779620] in all native modules in the project. https://developer.android.com/r/studio-ui/ndk-dir

> Task :app:cargoBuildArm
warning: output filename collision.
The lib target `encoding_engine` in package `encoding_engine v0.1.2 (/Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine)` has the same output filename as the lib target `encoding_engine` in package `encoding_engine v0.1.2 (/Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine)`.
Colliding filename is: /Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/libencoding_engine.so
The targets should have unique names.
Consider changing their names to be unique or compiling them separately.
This may become a hard error in the future; see <https://github.com/rust-lang/cargo/issues/6313>.
warning: output filename collision.
The lib target `encoding_engine` in package `encoding_engine v0.1.2 (/Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine)` has the same output filename as the lib target `encoding_engine` in package `encoding_engine v0.1.2 (/Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine)`.
Colliding filename is: /Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/libencoding_engine.so
The targets should have unique names.
Consider changing their names to be unique or compiling them separately.
This may become a hard error in the future; see <https://github.com/rust-lang/cargo/issues/6313>.
   Compiling encoding_engine v0.1.2 (/Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine)
warning: missing documentation for a module
   --> src/lib.rs:154:1
    |
154 | pub mod android {
    | ^^^^^^^^^^^^^^^
    |
note: the lint level is defined here
   --> src/lib.rs:1:9
    |
1   | #![warn(missing_docs)]
    |         ^^^^^^^^^^^^

warning: unused `Result` that must be used
   --> src/lib.rs:175:13
    |
175 |             env.throw_new("java/lang/Exception", "Unkown Exception for now...");
    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |
    = note: `#[warn(unused_must_use)]` on by default
    = note: this `Result` may be an `Err` variant, which should be handled

error: linking with `/Users/jonaseveraert/AndroidStudioProjects/tVoetje/build/linker-wrapper/linker-wrapper.sh` failed: exit status: 1
  |
  = note: "/Users/jonaseveraert/AndroidStudioProjects/tVoetje/build/linker-wrapper/linker-wrapper.sh" "-Wl,--version-script=/var/folders/5j/mszng5kj02s9smyq132753qr0000gn/T/rustcBq4ETj/list" "-Wl,--allow-multiple-definition" "-march=armv7-a" "/Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.13iexjtpnlf4vm3y.rcgu.o" "/Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.1c4n8v3udhgav8ik.rcgu.o" "/Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.1cj4yubdn718kleh.rcgu.o" "/Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.1fmcthjxtilbwv9d.rcgu.o" "/Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.1jsruaq633hpfhqo.rcgu.o" "/Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.1kjgxoa2d4dbnjy1.rcgu.o" "/Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.1qnufr9jgo1hsf8x.rcgu.o" "/Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.1rfeehswi8ov57r5.rcgu.o" "/Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.1rq5h1xkkoobv5an.rcgu.o" "/Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.1sag71ayf9ux1o1w.rcgu.o" "/Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.1v5ys8m5yv6jm6pf.rcgu.o" "/Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.1vjik5i6d799hrtx.rcgu.o" "/Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.1xl3yl5rhoi2uuay.rcgu.o" "/Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.1zw1s3z81vdv2bnn.rcgu.o" "/Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.21euuzmu2s4m94b.rcgu.o" "/Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.239d1orjj283xe46.rcgu.o" "/Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.29d6ktaogltq58zr.rcgu.o" "/Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.2ayzqnzdrv51kc80.rcgu.o" "/Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.2eciiakq88hyqe41.rcgu.o" "/Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.2ff9vof9t4oqe28s.rcgu.o" "/Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.2gwwg4vftyafmoop.rcgu.o" "/Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.2kq1ou3hkui68p3c.rcgu.o" "/Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.2laxxxvx4f8mtx2h.rcgu.o" "/Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.2nqwfn19mvccugaq.rcgu.o" "/Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.2p1hjfhrvh7r1y70.rcgu.o" "/Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.2q0ae6hgr2mvubz0.rcgu.o" "/Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.2w5y8hqmbuw0lj25.rcgu.o" "/Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.2xh9rlwyc49hu9vq.rcgu.o" "/Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.30tuz5g0sw4t0sul.rcgu.o" "/Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.36w974bxjrhykob4.rcgu.o" "/Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.3eepk1nd3zqp7cjy.rcgu.o" "/Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.3gwhihhl5mdwmjgi.rcgu.o" "/Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.3pi76xy0aydo0we2.rcgu.o" "/Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.3qgg020fcc3kgc1q.rcgu.o" "/Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.3thy4n84b9707ywq.rcgu.o" "/Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.3vzg0buf4xnxo28h.rcgu.o" "/Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.3x0bctrhm8zueu62.rcgu.o" "/Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.4aepjx8ozliom5y8.rcgu.o" "/Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.4blbugr0rks2xrzd.rcgu.o" "/Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.4fbjp4kwu0tvm6lb.rcgu.o" "/Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.4fmkzwuvz1ney6jv.rcgu.o" "/Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.4l4qlfzrcu8xmaeg.rcgu.o" "/Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.4ljr7y01uxzy5vfb.rcgu.o" "/Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.4qf5iemdlqydzpwk.rcgu.o" "/Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.4ssk32rweworyre6.rcgu.o" "/Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.4zes63f9hucbbu64.rcgu.o" "/Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.51ix8slditc92cjo.rcgu.o" "/Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.52hn0gkdsvcnsfrs.rcgu.o" "/Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.553docbnu1uai5rl.rcgu.o" "/Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.56c75mo4tgahuf8z.rcgu.o" "/Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.5bazwe5wb90e4i4b.rcgu.o" "/Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.5c6r1vzccnl7ly8p.rcgu.o" "/Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.5d16ka1jp6g6uosy.rcgu.o" "/Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.5ehwpmesfr03x4ae.rcgu.o" "/Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.6w8ts2gz5mherai.rcgu.o" "/Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.7ig63tm41yzoc4c.rcgu.o" "/Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.8lxk5yqtpv3i8ex.rcgu.o" "/Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.9eubgypwhwgmuq4.rcgu.o" "/Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.g90hvleupu2t6o6.rcgu.o" "/Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.o1bvc44cfxuq3ws.rcgu.o" "/Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.vhkr28x5snjga3h.rcgu.o" "/Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.wz3oangj2abb81r.rcgu.o" "/Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.7o2mtflv4bymw1t.rcgu.o" "-Wl,--as-needed" "-L" "/Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps" "-L" "/Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/debug/deps" "-L" "/Users/jonaseveraert/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/armv7-linux-androideabi/lib" "-Wl,-Bstatic" "/Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/libregex-0b5139a0a27c41a4.rlib" "/Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/libaho_corasick-520bf00a9f50c409.rlib" "/Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/libregex_syntax-58e117abec6552ef.rlib" "/Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/libjni-fa9fdf1a891f599f.rlib" "/Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/libcesu8-aff3b1cf99a78351.rlib" "/Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/liblog-be8b12b5c4d0a36c.rlib" "/Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/libcfg_if-8076f2900aff8252.rlib" "/Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/libcombine-62fb80e974b9e3bd.rlib" "/Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/libmemchr-aaa757300cf084ea.rlib" "/Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/libbytes-021be1b890dd8d6c.rlib" "/Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/libthiserror-9d2e7c84531aead2.rlib" "/Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/libjni_sys-1203e69587ab0ddb.rlib" "-Wl,--start-group" "/Users/jonaseveraert/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/armv7-linux-androideabi/lib/libstd-d5d15712b0d47922.rlib" "/Users/jonaseveraert/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/armv7-linux-androideabi/lib/libpanic_unwind-e72bbab6178a0884.rlib" "/Users/jonaseveraert/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/armv7-linux-androideabi/lib/libminiz_oxide-2e4db270d24f62b9.rlib" "/Users/jonaseveraert/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/armv7-linux-androideabi/lib/libadler-3ae2550096f18bc8.rlib" "/Users/jonaseveraert/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/armv7-linux-androideabi/lib/libobject-a839db316dbe86c2.rlib" "/Users/jonaseveraert/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/armv7-linux-androideabi/lib/libmemchr-e17e5f04154177aa.rlib" "/Users/jonaseveraert/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/armv7-linux-androideabi/lib/libaddr2line-8f04a5f6df91d7a2.rlib" "/Users/jonaseveraert/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/armv7-linux-androideabi/lib/libgimli-1dcf71ed9052de88.rlib" "/Users/jonaseveraert/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/armv7-linux-androideabi/lib/libstd_detect-300e0154326ff076.rlib" "/Users/jonaseveraert/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/armv7-linux-androideabi/lib/librustc_demangle-5e30874379f66265.rlib" "/Users/jonaseveraert/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/armv7-linux-androideabi/lib/libhashbrown-f0d820e1ad87c37b.rlib" "/Users/jonaseveraert/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/armv7-linux-androideabi/lib/librustc_std_workspace_alloc-da29c2594fa8a6eb.rlib" "/Users/jonaseveraert/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/armv7-linux-androideabi/lib/libunwind-15a2b681778bc685.rlib" "/Users/jonaseveraert/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/armv7-linux-androideabi/lib/libcfg_if-22057ec6a5d83031.rlib" "/Users/jonaseveraert/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/armv7-linux-androideabi/lib/liblibc-e8521973bf4ef813.rlib" "/Users/jonaseveraert/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/armv7-linux-androideabi/lib/liballoc-711bd3a1f87159d1.rlib" "/Users/jonaseveraert/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/armv7-linux-androideabi/lib/librustc_std_workspace_core-7bd985023a710cc9.rlib" "/Users/jonaseveraert/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/armv7-linux-androideabi/lib/libcore-bfbb3a1d0067c43a.rlib" "-Wl,--end-group" "/Users/jonaseveraert/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/armv7-linux-androideabi/lib/libcompiler_builtins-0fc41c80f57d6aac.rlib" "-Wl,-Bdynamic" "-ldl" "-llog" "-lgcc" "-lc" "-lm" "-Wl,--eh-frame-hdr" "-Wl,-znoexecstack" "-L" "/Users/jonaseveraert/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/armv7-linux-androideabi/lib" "-o" "/Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/libencoding_engine.so" "-Wl,--gc-sections" "-shared" "-Wl,-zrelro" "-Wl,-znow" "-nodefaultlibs"
  = note: ld: error: unable to find library -lgcc
          clang-12: error: linker command failed with exit code 1 (use -v to see invocation)
          /Users/jonaseveraert/Library/Android/sdk/ndk/23.1.7779620/toolchains/llvm/prebuilt/darwin-x86_64/bin/armv7a-linux-androideabi16-clang -Wl,-soname,libencoding_engine.so -Wl,--version-script=/var/folders/5j/mszng5kj02s9smyq132753qr0000gn/T/rustcBq4ETj/list -Wl,--allow-multiple-definition -march=armv7-a /Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.13iexjtpnlf4vm3y.rcgu.o /Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.1c4n8v3udhgav8ik.rcgu.o /Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.1cj4yubdn718kleh.rcgu.o /Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.1fmcthjxtilbwv9d.rcgu.o /Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.1jsruaq633hpfhqo.rcgu.o /Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.1kjgxoa2d4dbnjy1.rcgu.o /Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.1qnufr9jgo1hsf8x.rcgu.o /Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.1rfeehswi8ov57r5.rcgu.o /Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.1rq5h1xkkoobv5an.rcgu.o /Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.1sag71ayf9ux1o1w.rcgu.o /Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.1v5ys8m5yv6jm6pf.rcgu.o /Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.1vjik5i6d799hrtx.rcgu.o /Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.1xl3yl5rhoi2uuay.rcgu.o /Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.1zw1s3z81vdv2bnn.rcgu.o /Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.21euuzmu2s4m94b.rcgu.o /Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.239d1orjj283xe46.rcgu.o /Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.29d6ktaogltq58zr.rcgu.o /Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.2ayzqnzdrv51kc80.rcgu.o /Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.2eciiakq88hyqe41.rcgu.o /Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.2ff9vof9t4oqe28s.rcgu.o /Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.2gwwg4vftyafmoop.rcgu.o /Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.2kq1ou3hkui68p3c.rcgu.o /Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.2laxxxvx4f8mtx2h.rcgu.o /Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.2nqwfn19mvccugaq.rcgu.o /Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.2p1hjfhrvh7r1y70.rcgu.o /Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.2q0ae6hgr2mvubz0.rcgu.o /Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.2w5y8hqmbuw0lj25.rcgu.o /Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.2xh9rlwyc49hu9vq.rcgu.o /Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.30tuz5g0sw4t0sul.rcgu.o /Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.36w974bxjrhykob4.rcgu.o /Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.3eepk1nd3zqp7cjy.rcgu.o /Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.3gwhihhl5mdwmjgi.rcgu.o /Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.3pi76xy0aydo0we2.rcgu.o /Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.3qgg020fcc3kgc1q.rcgu.o /Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.3thy4n84b9707ywq.rcgu.o /Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.3vzg0buf4xnxo28h.rcgu.o /Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.3x0bctrhm8zueu62.rcgu.o /Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.4aepjx8ozliom5y8.rcgu.o /Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.4blbugr0rks2xrzd.rcgu.o /Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.4fbjp4kwu0tvm6lb.rcgu.o /Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.4fmkzwuvz1ney6jv.rcgu.o /Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.4l4qlfzrcu8xmaeg.rcgu.o /Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.4ljr7y01uxzy5vfb.rcgu.o /Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.4qf5iemdlqydzpwk.rcgu.o /Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.4ssk32rweworyre6.rcgu.o /Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.4zes63f9hucbbu64.rcgu.o /Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.51ix8slditc92cjo.rcgu.o /Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.52hn0gkdsvcnsfrs.rcgu.o /Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.553docbnu1uai5rl.rcgu.o /Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.56c75mo4tgahuf8z.rcgu.o /Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.5bazwe5wb90e4i4b.rcgu.o /Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.5c6r1vzccnl7ly8p.rcgu.o /Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.5d16ka1jp6g6uosy.rcgu.o /Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.5ehwpmesfr03x4ae.rcgu.o /Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.6w8ts2gz5mherai.rcgu.o /Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.7ig63tm41yzoc4c.rcgu.o /Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.8lxk5yqtpv3i8ex.rcgu.o /Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.9eubgypwhwgmuq4.rcgu.o /Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.g90hvleupu2t6o6.rcgu.o /Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.o1bvc44cfxuq3ws.rcgu.o /Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.vhkr28x5snjga3h.rcgu.o /Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.wz3oangj2abb81r.rcgu.o /Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/encoding_engine.7o2mtflv4bymw1t.rcgu.o -Wl,--as-needed -L /Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps -L /Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/debug/deps -L /Users/jonaseveraert/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/armv7-linux-androideabi/lib -Wl,-Bstatic /Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/libregex-0b5139a0a27c41a4.rlib /Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/libaho_corasick-520bf00a9f50c409.rlib /Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/libregex_syntax-58e117abec6552ef.rlib /Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/libjni-fa9fdf1a891f599f.rlib /Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/libcesu8-aff3b1cf99a78351.rlib /Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/liblog-be8b12b5c4d0a36c.rlib /Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/libcfg_if-8076f2900aff8252.rlib /Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/libcombine-62fb80e974b9e3bd.rlib /Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/libmemchr-aaa757300cf084ea.rlib /Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/libbytes-021be1b890dd8d6c.rlib /Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/libthiserror-9d2e7c84531aead2.rlib /Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/libjni_sys-1203e69587ab0ddb.rlib -Wl,--start-group /Users/jonaseveraert/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/armv7-linux-androideabi/lib/libstd-d5d15712b0d47922.rlib /Users/jonaseveraert/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/armv7-linux-androideabi/lib/libpanic_unwind-e72bbab6178a0884.rlib /Users/jonaseveraert/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/armv7-linux-androideabi/lib/libminiz_oxide-2e4db270d24f62b9.rlib /Users/jonaseveraert/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/armv7-linux-androideabi/lib/libadler-3ae2550096f18bc8.rlib /Users/jonaseveraert/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/armv7-linux-androideabi/lib/libobject-a839db316dbe86c2.rlib /Users/jonaseveraert/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/armv7-linux-androideabi/lib/libmemchr-e17e5f04154177aa.rlib /Users/jonaseveraert/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/armv7-linux-androideabi/lib/libaddr2line-8f04a5f6df91d7a2.rlib /Users/jonaseveraert/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/armv7-linux-androideabi/lib/libgimli-1dcf71ed9052de88.rlib /Users/jonaseveraert/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/armv7-linux-androideabi/lib/libstd_detect-300e0154326ff076.rlib /Users/jonaseveraert/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/armv7-linux-androideabi/lib/librustc_demangle-5e30874379f66265.rlib /Users/jonaseveraert/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/armv7-linux-androideabi/lib/libhashbrown-f0d820e1ad87c37b.rlib /Users/jonaseveraert/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/armv7-linux-androideabi/lib/librustc_std_workspace_alloc-da29c2594fa8a6eb.rlib /Users/jonaseveraert/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/armv7-linux-androideabi/lib/libunwind-15a2b681778bc685.rlib /Users/jonaseveraert/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/armv7-linux-androideabi/lib/libcfg_if-22057ec6a5d83031.rlib /Users/jonaseveraert/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/armv7-linux-androideabi/lib/liblibc-e8521973bf4ef813.rlib /Users/jonaseveraert/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/armv7-linux-androideabi/lib/liballoc-711bd3a1f87159d1.rlib /Users/jonaseveraert/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/armv7-linux-androideabi/lib/librustc_std_workspace_core-7bd985023a710cc9.rlib /Users/jonaseveraert/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/armv7-linux-androideabi/lib/libcore-bfbb3a1d0067c43a.rlib -Wl,--end-group /Users/jonaseveraert/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/armv7-linux-androideabi/lib/libcompiler_builtins-0fc41c80f57d6aac.rlib -Wl,-Bdynamic -ldl -llog -lgcc -lc -lm -Wl,--eh-frame-hdr -Wl,-znoexecstack -L /Users/jonaseveraert/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/armv7-linux-androideabi/lib -o /Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/libencoding_engine.so -Wl,--gc-sections -shared -Wl,-zrelro -Wl,-znow -nodefaultlibs

warning: `encoding_engine` (lib) generated 2 warnings
error: could not compile `encoding_engine` due to previous error; 2 warnings emitted

> Task :app:cargoBuildArm FAILED

FAILURE: Build failed with an exception.

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

* Try:
Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:cargoBuildArm'.
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.lambda$executeIfValid$1(ExecuteActionsTaskExecuter.java:207)
        at org.gradle.internal.Try$Failure.ifSuccessfulOrElse(Try.java:263)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:205)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:186)
        at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:114)
        at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)
        at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:62)
        at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
        at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:56)
        at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
        at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77)
        at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55)
        at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:409)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:399)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:157)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:242)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:150)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:94)
        at org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36)
        at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)
        at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:41)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:356)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:343)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:336)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:322)
        at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.lambda$run$0(DefaultPlanExecutor.java:127)
        at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:191)
        at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:182)
        at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:124)
        at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
        at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
        at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)
Caused by: org.gradle.process.internal.ExecException: Process 'command 'cargo'' finished with non-zero exit value 101
        at org.gradle.process.internal.DefaultExecHandle$ExecResultImpl.assertNormalExitValue(DefaultExecHandle.java:417)
        at org.gradle.process.internal.DefaultExecAction.execute(DefaultExecAction.java:38)
        at org.gradle.process.internal.DefaultExecActionFactory.exec(DefaultExecActionFactory.java:168)
        at org.gradle.api.internal.project.DefaultProject.exec(DefaultProject.java:1155)
        at com.nishtahir.CargoBuildTask$build$$inlined$with$lambda$1.execute(CargoBuildTask.kt:273)
        at com.nishtahir.CargoBuildTask$build$$inlined$with$lambda$1.execute(CargoBuildTask.kt:14)
        at org.gradle.api.internal.DefaultDomainObjectCollection.all(DefaultDomainObjectCollection.java:163)
        at com.nishtahir.CargoBuildTask.build(CargoBuildTask.kt:28)
        at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:104)
        at org.gradle.api.internal.project.taskfactory.StandardTaskAction.doExecute(StandardTaskAction.java:49)
        at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:42)
        at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:28)
        at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:726)
        at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:693)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$3.run(ExecuteActionsTaskExecuter.java:569)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:395)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:387)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:157)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:242)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:150)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:84)
        at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:554)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:537)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.access$300(ExecuteActionsTaskExecuter.java:108)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution.executeWithPreviousOutputFiles(ExecuteActionsTaskExecuter.java:278)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution.execute(ExecuteActionsTaskExecuter.java:267)
        at org.gradle.internal.execution.steps.ExecuteStep.lambda$execute$1(ExecuteStep.java:33)
        at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:33)
        at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:26)
        at org.gradle.internal.execution.steps.CleanupOutputsStep.execute(CleanupOutputsStep.java:67)
        at org.gradle.internal.execution.steps.CleanupOutputsStep.execute(CleanupOutputsStep.java:36)
        at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:49)
        at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:34)
        at org.gradle.internal.execution.steps.CancelExecutionStep.execute(CancelExecutionStep.java:43)
        at org.gradle.internal.execution.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:73)
        at org.gradle.internal.execution.steps.TimeoutStep.execute(TimeoutStep.java:54)
        at org.gradle.internal.execution.steps.CatchExceptionStep.execute(CatchExceptionStep.java:34)
        at org.gradle.internal.execution.steps.CreateOutputsStep.execute(CreateOutputsStep.java:44)
        at org.gradle.internal.execution.steps.SnapshotOutputsStep.execute(SnapshotOutputsStep.java:54)
        at org.gradle.internal.execution.steps.SnapshotOutputsStep.execute(SnapshotOutputsStep.java:38)
        at org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:49)
        at org.gradle.internal.execution.steps.CacheStep.executeWithoutCache(CacheStep.java:159)
        at org.gradle.internal.execution.steps.CacheStep.execute(CacheStep.java:72)
        at org.gradle.internal.execution.steps.CacheStep.execute(CacheStep.java:43)
        at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:44)
        at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:33)
        at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:38)
        at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:24)
        at org.gradle.internal.execution.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:92)
        at org.gradle.internal.execution.steps.SkipUpToDateStep.lambda$execute$0(SkipUpToDateStep.java:85)
        at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:55)
        at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:39)
        at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:76)
        at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:37)
        at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:36)
        at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:26)
        at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:94)
        at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:49)
        at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:79)
        at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:53)
        at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:74)
        at org.gradle.internal.execution.steps.SkipEmptyWorkStep.lambda$execute$2(SkipEmptyWorkStep.java:78)
        at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:78)
        at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:34)
        at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsStartedStep.execute(MarkSnapshottingInputsStartedStep.java:39)
        at org.gradle.internal.execution.steps.LoadExecutionStateStep.execute(LoadExecutionStateStep.java:40)
        at org.gradle.internal.execution.steps.LoadExecutionStateStep.execute(LoadExecutionStateStep.java:28)
        at org.gradle.internal.execution.impl.DefaultWorkExecutor.execute(DefaultWorkExecutor.java:33)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:194)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:186)
        at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:114)
        at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)
        at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:62)
        at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
        at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:56)
        at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
        at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77)
        at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55)
        at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:409)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:399)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:157)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:242)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:150)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:94)
        at org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36)
        at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)
        at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:41)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:356)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:343)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:336)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:322)
        at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.lambda$run$0(DefaultPlanExecutor.java:127)
        at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:191)
        at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:182)
        at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:124)
        at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
        at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
        at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)

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

BUILD FAILED in 9s
2 actionable tasks: 2 executed

I've been trying to figure out what the problem here is exactly, but I have no clue.

Can anyone give any help?

ncalexan commented 2 years ago

Thanks for the excellent bug report. I see two things here: one is the clashing filenames. I've not seen that (yet), and don't have much to say about it. It looks like a Cargo configuration issue.

The second is this issue with -lgcc:

error: linking with `/Users/jonaseveraert/AndroidStudioProjects/tVoetje/build/linker-wrapper/linker-wrapper.sh` failed: exit status: 1
  |
  = note: "/Users/jonaseveraert/AndroidStudioProjects/tVoetje/build/linker-wrapper/linker-wrapper.sh" "-Wl,--version- ...
  = note: ld: error: unable to find library -lgcc
          clang-12: error: linker command failed with exit code 1 (use -v to see invocation)

I believe this is an issue trying to use Rust with a very modern NDK. There's some discussion in #75. Try using an earlier (stable) NDK and see if that addresses the issue, and report back?

Jomy10 commented 2 years ago

I tried the "22.1.7171670" NDK, as this is the version you suggested in the other issue. The build fails again, so I ran it with --stacktrace and got the following:

> Configure project :app
(... Same a before)

> Task :app:cargoBuildArm FAILED
warning: output filename collision.
The lib target `encoding_engine` in package `encoding_engine v0.1.2 (/Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine)` has the same output filename as the lib target `encoding_engine` in package `encoding_engine v0.1.2 (/Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine)`.
Colliding filename is: /Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/deps/libencoding_engine.so
The targets should have unique names.
Consider changing their names to be unique or compiling them separately.
This may become a hard error in the future; see <https://github.com/rust-lang/cargo/issues/6313>.
warning: output filename collision.
The lib target `encoding_engine` in package `encoding_engine v0.1.2 (/Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine)` has the same output filename as the lib target `encoding_engine` in package `encoding_engine v0.1.2 (/Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine)`.
Colliding filename is: /Users/jonaseveraert/Documents/Documenten/Programmeren/XCode/voetje/Rust/encoding_engine/target/armv7-linux-androideabi/debug/libencoding_engine.so
The targets should have unique names.
Consider changing their names to be unique or compiling them separately.
This may become a hard error in the future; see <https://github.com/rust-lang/cargo/issues/6313>.
thread 'main' panicked at 'assertion failed: mtimes.insert(output.clone(), mtime).is_none()', src/tools/cargo/src/cargo/core/compiler/fingerprint.rs:1017:13
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

FAILURE: Build failed with an exception.

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

* Try:
Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:cargoBuildArm'.
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.lambda$executeIfValid$1(ExecuteActionsTaskExecuter.java:207)
        at org.gradle.internal.Try$Failure.ifSuccessfulOrElse(Try.java:263)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:205)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:186)
        at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:114)
        at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)
        at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:62)
        at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
        at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:56)
        at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
        at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77)
        at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55)
        at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:409)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:399)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:157)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:242)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:150)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:94)
        at org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36)
        at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)
        at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:41)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:356)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:343)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:336)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:322)
        at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.lambda$run$0(DefaultPlanExecutor.java:127)
        at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:191)
        at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:182)
        at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:124)
        at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
        at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
        at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)
Caused by: org.gradle.process.internal.ExecException: Process 'command 'cargo'' finished with non-zero exit value 101
        at org.gradle.process.internal.DefaultExecHandle$ExecResultImpl.assertNormalExitValue(DefaultExecHandle.java:417)
        at org.gradle.process.internal.DefaultExecAction.execute(DefaultExecAction.java:38)
        at org.gradle.process.internal.DefaultExecActionFactory.exec(DefaultExecActionFactory.java:168)
        at org.gradle.api.internal.project.DefaultProject.exec(DefaultProject.java:1155)
        at com.nishtahir.CargoBuildTask$build$$inlined$with$lambda$1.execute(CargoBuildTask.kt:273)
        at com.nishtahir.CargoBuildTask$build$$inlined$with$lambda$1.execute(CargoBuildTask.kt:14)
        at org.gradle.api.internal.DefaultDomainObjectCollection.all(DefaultDomainObjectCollection.java:163)
        at com.nishtahir.CargoBuildTask.build(CargoBuildTask.kt:28)
        at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:104)
        at org.gradle.api.internal.project.taskfactory.StandardTaskAction.doExecute(StandardTaskAction.java:49)
        at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:42)
        at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:28)
        at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:726)
        at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:693)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$3.run(ExecuteActionsTaskExecuter.java:569)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:395)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:387)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:157)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:242)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:150)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:84)
        at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:554)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:537)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.access$300(ExecuteActionsTaskExecuter.java:108)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution.executeWithPreviousOutputFiles(ExecuteActionsTaskExecuter.java:278)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution.execute(ExecuteActionsTaskExecuter.java:267)
        at org.gradle.internal.execution.steps.ExecuteStep.lambda$execute$1(ExecuteStep.java:33)
        at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:33)
        at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:26)
        at org.gradle.internal.execution.steps.CleanupOutputsStep.execute(CleanupOutputsStep.java:67)
        at org.gradle.internal.execution.steps.CleanupOutputsStep.execute(CleanupOutputsStep.java:36)
        at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:49)
        at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:34)
        at org.gradle.internal.execution.steps.CancelExecutionStep.execute(CancelExecutionStep.java:43)
        at org.gradle.internal.execution.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:73)
        at org.gradle.internal.execution.steps.TimeoutStep.execute(TimeoutStep.java:54)
        at org.gradle.internal.execution.steps.CatchExceptionStep.execute(CatchExceptionStep.java:34)
        at org.gradle.internal.execution.steps.CreateOutputsStep.execute(CreateOutputsStep.java:44)
        at org.gradle.internal.execution.steps.SnapshotOutputsStep.execute(SnapshotOutputsStep.java:54)
        at org.gradle.internal.execution.steps.SnapshotOutputsStep.execute(SnapshotOutputsStep.java:38)
        at org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:49)
        at org.gradle.internal.execution.steps.CacheStep.executeWithoutCache(CacheStep.java:159)
        at org.gradle.internal.execution.steps.CacheStep.execute(CacheStep.java:72)
        at org.gradle.internal.execution.steps.CacheStep.execute(CacheStep.java:43)
        at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:44)
        at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:33)
        at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:38)
        at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:24)
        at org.gradle.internal.execution.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:92)
        at org.gradle.internal.execution.steps.SkipUpToDateStep.lambda$execute$0(SkipUpToDateStep.java:85)
        at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:55)
        at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:39)
        at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:76)
        at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:37)
        at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:36)
        at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:26)
        at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:94)
        at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:49)
        at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:79)
        at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:53)
        at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:74)
        at org.gradle.internal.execution.steps.SkipEmptyWorkStep.lambda$execute$2(SkipEmptyWorkStep.java:78)
        at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:78)
        at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:34)
        at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsStartedStep.execute(MarkSnapshottingInputsStartedStep.java:39)
        at org.gradle.internal.execution.steps.LoadExecutionStateStep.execute(LoadExecutionStateStep.java:40)
        at org.gradle.internal.execution.steps.LoadExecutionStateStep.execute(LoadExecutionStateStep.java:28)
        at org.gradle.internal.execution.impl.DefaultWorkExecutor.execute(DefaultWorkExecutor.java:33)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:194)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:186)
        at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:114)
        at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)
        at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:62)
        at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
        at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:56)
        at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
        at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77)
        at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55)
        at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:409)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:399)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:157)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:242)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:150)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:94)
        at org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36)
        at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)
        at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:41)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:356)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:343)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:336)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:322)
        at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.lambda$run$0(DefaultPlanExecutor.java:127)
        at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:191)
        at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:182)
        at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:124)
        at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
        at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
        at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)

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

BUILD FAILED in 3s
2 actionable tasks: 1 executed, 1 up-to-date
<-------------> 0% WAITING
> IDLE

P.S. I also tried NDK version "21.4.7075529", but it has the same problem.

ncalexan commented 2 years ago

OK, at least we got rid of the -lgcc error. Thanks for confirming that earlier NDKs work!

Now, it looks like you're hitting a legit Cargo issue; I see discussion like https://users.rust-lang.org/t/crate-type-cdylib-dylib-confuses-cargo-nowadays/25447/2 about this problem. Can you share your Rust project so that we can investigate?

Jomy10 commented 2 years ago

Yes of course. The source code of my rust library can be found here. Let me know if I need to translate anything from the readme as it is in Dutch, everything else is in English. Do you need the source code of the Android project as well? I haven't uploaded that anywhere.

I'll have a look at that discussion later to see if I become any wiser.

P.S. Here's a quick translation of my project's structure. I have functions written in Rust in src/encoding_funcs.rs while in src/lib.rs I have functions that link to iOS and Android. So, I used the functions in in src/encoding_funcs.rs inside of the functions in src/lib.rs

ncalexan commented 2 years ago

So you're almost certainly hitting this Cargo issue, because you're building a Rust dylib and a dlopen()-friendly cdylib: https://github.com/Jomy10/voetje_encoding_engine/blob/180e2aa086ce71187922a9b0d137b02c2035310f/Cargo.toml#L16.

Are you confident you need the dylib? For integrating with Android and iOS, you need just the cdylib.

Jomy10 commented 2 years ago

Ah, that seems to have fixed the problem! Thank you very much for your assistance.

ncalexan commented 2 years ago

Ah, that seems to have fixed the problem! Thank you very much for your assistance.

You're welcome! It's rare that we can actually close one out in a reasonable time :)

Thanks for the excellent issue report and closing open loops quickly. And thanks for trying rust-android-gradle: I hope it works for you!