Closed hut closed 1 month ago
I believe this was fixed recently. Could you try again from the master branch?
(edit: i believe this could have fixed it: https://github.com/slint-ui/slint/pull/5715)
Oh, embarrassing, I should have seen that PR!
Unfortunately, same problem with a fresh build on master (b1dab293665921d3c62e33058850f1f4b50e34c3).
It creates a libweather_demo_lib.so
but in the "Create apk" step it looks for a libweather_demo.so
.
Full build log on master:
~/.../examples/weather-demo$ x build --platform android --arch arm64
[1/3] Fetch precompiled artifacts
info: component 'rust-std' for target 'aarch64-linux-android' is up to date
[1/3] Fetch precompiled artifacts [107ms]
[2/3] Build rust `weather-demo`
Compiling proc-macro2 v1.0.86
Compiling unicode-ident v1.0.12
Compiling autocfg v1.3.0
Compiling version_check v0.9.5
Compiling cfg-if v1.0.0
Compiling libc v0.2.155
Compiling libm v0.2.8
Compiling crossbeam-utils v0.8.20
Compiling log v0.4.22
Compiling once_cell v1.19.0
Compiling zerocopy v0.7.35
Compiling serde v1.0.204
Compiling allocator-api2 v0.2.18
Compiling simd-adler32 v0.3.7
Compiling value-bag v1.9.0
Compiling equivalent v1.0.1
Compiling adler v1.0.2
Compiling either v1.13.0
Compiling miniz_oxide v0.7.4
Compiling thiserror v1.0.63
Compiling bitflags v2.6.0
Compiling crc32fast v1.4.2
Compiling libloading v0.8.5
Compiling heck v0.5.0
Compiling tinyvec_macros v0.1.1
Compiling rustversion v1.0.17
Compiling tinyvec v1.8.0
Compiling convert_case v0.4.0
Compiling ahash v0.8.11
Compiling slotmap v1.0.7
Compiling num-traits v0.2.19
Compiling memoffset v0.9.1
Compiling pin-project-lite v0.2.14
Compiling ttf-parser v0.21.1
Compiling arrayvec v0.7.4
Compiling flate2 v1.0.30
Compiling memchr v2.7.4
Compiling bytemuck v1.16.3
Compiling hashbrown v0.14.5
Compiling quote v1.0.36
Compiling syn v2.0.72
Compiling rustc-hash v1.1.0
Compiling winnow v0.5.40
Compiling semver v1.0.23
Compiling roxmltree v0.20.0
Compiling crossbeam-epoch v0.9.18
Compiling memmap2 v0.9.4
Compiling slab v0.4.9
Compiling indexmap v2.3.0
Compiling rayon-core v1.12.1
Compiling rustix v0.38.34
Compiling smallvec v1.13.2
Compiling portable-atomic v1.7.0
Compiling bitflags v1.3.2
Compiling fontconfig-parser v0.5.7
Compiling crossbeam-deque v0.8.5
Compiling lock_api v0.4.12
Compiling linux-raw-sys v0.4.14
Compiling parking v2.2.0
Compiling critical-section v1.1.2
Compiling glob v0.3.1
Compiling winnow v0.6.18
Compiling rustc_version v0.4.0
Compiling concurrent-queue v2.5.0
Compiling clang-sys v1.8.1
Compiling jobserver v0.1.32
Compiling scopeguard v1.2.0
Compiling float-cmp v0.9.0
Compiling serde_json v1.0.121
Compiling fontdb v0.18.0
Compiling prettyplease v0.2.20
Compiling strict-num v0.1.1
Compiling cc v1.1.7
Compiling field-offset v0.3.6
Compiling euclid v0.22.10
Compiling toml_datetime v0.6.8
Compiling serde_spanned v0.6.7
Compiling aho-corasick v1.1.3
Compiling fdeflate v0.3.4
Compiling toml_edit v0.21.1
Compiling unicode-bidi v0.3.15
Compiling futures-core v0.3.30
Compiling minimal-lexical v0.2.1
Compiling arrayref v0.3.8
Compiling regex-syntax v0.8.4
Compiling khronos_api v3.1.0
Compiling png v0.17.13
Compiling nom v7.1.3
Compiling lyon_geom v1.0.5
Compiling toml_edit v0.22.20
Compiling tiny-skia-path v0.11.4
Compiling spin v0.9.8
Compiling kurbo v0.11.0
Compiling rayon v1.10.0
Compiling unicode-script v0.5.6
Compiling proc-macro-crate v3.1.0
Compiling siphasher v1.0.1
Compiling weezl v0.1.8
Compiling unicode-bidi-mirroring v0.2.0
Compiling bindgen v0.69.4
Compiling regex-automata v0.4.7
Compiling home v0.5.9
Compiling unicode-ccc v0.2.0
Compiling unicode-properties v0.1.1
Compiling futures-io v0.3.30
Compiling svgtypes v0.15.1
Compiling which v4.4.2
Compiling cexpr v0.6.0
Compiling rustybuzz v0.14.1
Compiling flume v0.11.0
Compiling lyon_path v1.0.5
Compiling xattr v1.3.1
Compiling android_system_properties v0.1.5
Compiling unicode-normalization v0.1.23
Compiling jpeg-decoder v0.3.1
Compiling filetime v0.2.23
Compiling simplecss v0.2.1
Compiling itertools v0.12.1
Compiling zune-inflate v0.2.54
Compiling half v2.4.1
Compiling lebe v0.5.2
Compiling imagesize v0.12.0
Compiling xmlwriter v0.1.0
Compiling pico-args v0.5.0
Compiling cfg_aliases v0.2.1
Compiling unicode-vo v0.1.0
Compiling base64 v0.22.1
Compiling xml-rs v0.8.20
Compiling lazy_static v1.5.0
Compiling itoa v1.0.11
Compiling regex v1.10.5
Compiling bit_field v0.10.2
Compiling shlex v1.3.0
Compiling data-url v0.3.1
Compiling color_quant v1.1.0
Compiling lazycell v1.3.0
Compiling percent-encoding v2.3.1
Compiling ryu v1.0.18
Compiling form_urlencoded v1.2.1
Compiling usvg v0.42.0
Compiling gl_generator v0.14.0
Compiling gif v0.13.1
Compiling exr v1.72.0
Compiling tiff v0.9.1
Compiling idna v0.5.0
Compiling tar v0.4.41
Compiling thiserror-impl v1.0.63
Compiling derive_more v0.99.18
Compiling bytemuck_derive v1.7.0
Compiling strum_macros v0.26.4
Compiling num_enum_derive v0.7.3
Compiling const-field-offset-macro v0.1.5 (/path/to/slint/helper_crates/const-field-offset/macro)
Compiling pin-project-internal v1.1.5
Compiling vtable-macro v0.2.0 (/path/to/slint/helper_crates/vtable/macro)
Compiling iana-time-zone v0.1.60
Compiling toml v0.8.19
Compiling tiny-skia v0.11.4
Compiling const-field-offset v0.1.5 (/path/to/slint/helper_crates/const-field-offset)
Compiling derive_utils v0.14.1
Compiling event-listener v5.3.1
Compiling errno v0.3.9
Compiling rgb v0.8.45
Compiling qoi v0.4.1
Compiling stable_deref_trait v1.2.0
Compiling android-tzdata v0.1.1
Compiling text-size v1.1.1
Compiling codemap v0.1.3
Compiling termcolor v1.4.1
Compiling byteorder v1.5.0
Compiling countme v3.0.1
Compiling i-slint-compiler v1.7.1 (/path/to/slint/internal/compiler)
Compiling linked-hash-map v0.5.6
Compiling fastrand v2.1.0
Compiling image v0.24.9
Compiling linked_hash_set v0.1.4
Compiling resvg v0.42.0
Compiling num_enum v0.7.3
Compiling rowan v0.15.15
Compiling vtable v0.2.0 (/path/to/slint/helper_crates/vtable)
Compiling pin-project v1.1.5
Compiling codemap-diagnostic v0.1.2
Compiling lyon_extra v1.0.2
Compiling chrono v0.4.38
Compiling auto_enums v0.8.5
Compiling strum v0.26.3
Compiling event-listener-strategy v0.5.2
Compiling glutin_egl_sys v0.7.0
Compiling url v2.5.2
Compiling i-slint-core-macros v1.7.1 (/path/to/slint/internal/core-macros)
Compiling lyon_algorithms v1.0.4
Compiling fontdue v0.9.2
Compiling integer-sqrt v0.1.5
Compiling itertools v0.13.0
Compiling clru v0.6.2
Compiling pin-weak v1.1.0
Compiling by_address v1.2.1
Compiling unicode-linebreak v0.1.5
Compiling pin-utils v0.1.0
Compiling unicode-segmentation v1.11.0
Compiling jni-sys v0.3.0
Compiling scoped-tls-hkt v0.1.4
Compiling raw-window-handle v0.6.2
Compiling smol_str v0.2.2
Compiling static_assertions v1.1.0
Compiling spin_on v0.1.1
Compiling futures-lite v2.3.0
Compiling glutin v0.32.0
Compiling io-lifetimes v1.0.11
Compiling i-slint-common v1.7.1 (/path/to/slint/internal/common)
Compiling tracing-core v0.1.32
Compiling i-slint-backend-qt v1.7.1 (/path/to/slint/internal/backends/qt)
Compiling bytes v1.7.0
Compiling java-locator v0.1.7
Compiling tracing v0.1.40
Compiling ndk-sys v0.6.0+11769913
Compiling i-slint-renderer-skia v1.7.1 (/path/to/slint/internal/renderers/skia)
Compiling android-activity v0.6.0
Compiling polling v2.8.0
Compiling combine v4.6.7
Compiling libloading v0.7.4
Compiling async-task v4.7.1
Compiling event-listener v2.5.3
Compiling atomic-waker v1.1.2
Compiling cesu8 v1.1.0
Compiling rustix v0.37.27
Compiling piper v0.2.3
Compiling i-slint-core v1.7.1 (/path/to/slint/internal/core)
Compiling i-slint-backend-selector v1.7.1 (/path/to/slint/internal/backends/selector)
Compiling ndk v0.9.0
Compiling async-channel v2.3.1
Compiling async-lock v3.4.0
Compiling async-io v1.13.0
Compiling fastrand v1.9.0
Compiling linux-raw-sys v0.3.8
Compiling waker-fn v1.2.0
Compiling glow v0.13.1
Compiling android-properties v0.2.2
Compiling ndk-context v0.1.1
Compiling i-slint-backend-android-activity v1.7.1 (/path/to/slint/internal/backends/android-activity)
Compiling futures-lite v1.13.0
Compiling blocking v1.6.1
Compiling async-lock v2.8.0
Compiling async-executor v1.13.0
Compiling serde_derive v1.0.204
Compiling socket2 v0.4.10
Compiling option-ext v0.2.0
Compiling dirs-sys v0.4.1
Compiling async-channel v1.9.0
Compiling kv-log-macro v1.0.7
Compiling android_log-sys v0.3.1
Compiling directories v5.0.1
Compiling polling v3.7.2
Compiling tokio v1.39.2
Compiling skia-bindings v0.75.0
Compiling async-io v2.3.3
Compiling env_filter v0.1.2
Compiling android_logger v0.14.1
Compiling async-global-executor v2.4.1
Compiling async-std v1.12.0
Compiling jni v0.21.1
Compiling slint-build v1.7.1 (/path/to/slint/api/rs/build)
Compiling slint-macros v1.7.1 (/path/to/slint/api/rs/macros)
Compiling weather-demo v1.7.1 (/path/to/slint/examples/weather-demo)
Compiling skia-safe v0.75.0
Compiling slint v1.7.1 (/path/to/slint/api/rs/slint)
Finished `dev` profile [unoptimized + debuginfo] target(s) in 40.32s
[2/3] Build rust `weather-demo` [40402ms]
[3/3] Create apk
Error: failed to locate bin /path/to/slint/target/x/debug/android/arm64/cargo/aarch64-linux-android/debug/libweather_demo.so
Perhaps this is some difference between cargo-apk and xbuild? Our CI uses the former to build an apk and that works. Maybe there’s a config key?
Right, xbuild has some issues when we rename things in Cargo.toml:
https://github.com/rust-mobile/xbuild/issues/161
So maybe related.
(We need to rename the lib in our example because of support of both a binary and a lib. Although since there is a -
in the name, this might not be necessary.)
(We need to rename the lib in our example because of support of both a binary and a lib. Although since there is a
-
in the name, this might not be necessary.)
Solved the problem for me, just weather_demo_lib
to weather_demo
in the Cargo.toml and the build doesn't fail.
I tried building an apk with xbuild and slint 1.7.1 for the weather demo example, but it gives me this error:
Turns out it created a
librusty_weather_lib.so
in that destination instead of alibrusty_weather.so
. I could resolve this by renaminglibrusty_weather_lib.so
tolibrusty_weather.so
. But this should not be happening, right? Perhaps there is something misconfigured in the Cargo.toml?My system is ArchLinux with slint 1.7.1, rustc 1.80.0, xbuild 0.2.0, android-sdk 26.1.1-2, android-ndk r26.d-1, android-platform 32_r01-1.