diff --git a/crates/wzp-android/Cargo.toml b/crates/wzp-android/Cargo.toml index c13e3f2..b43995a 100644 --- a/crates/wzp-android/Cargo.toml +++ b/crates/wzp-android/Cargo.toml @@ -17,7 +17,7 @@ wzp-crypto = { workspace = true } wzp-transport = { workspace = true } tokio = { workspace = true } tracing = { workspace = true } -tracing-subscriber = { workspace = true } +tracing-subscriber = { workspace = true, features = ["env-filter"] } bytes = { workspace = true } serde = { workspace = true } serde_json = "1" diff --git a/crates/wzp-android/src/jni_bridge.rs b/crates/wzp-android/src/jni_bridge.rs index ccb25ac..75e3bca 100644 --- a/crates/wzp-android/src/jni_bridge.rs +++ b/crates/wzp-android/src/jni_bridge.rs @@ -41,8 +41,17 @@ fn init_logging() { let _ = std::panic::catch_unwind(|| { use tracing_subscriber::layer::SubscriberExt; use tracing_subscriber::util::SubscriberInitExt; + use tracing_subscriber::EnvFilter; if let Ok(layer) = tracing_android::layer("wzp_android") { - let _ = tracing_subscriber::registry().with(layer).try_init(); + // Filter: INFO for our crates, WARN for everything else. + // The jni crate emits VERBOSE logs for every method lookup + // (~10 lines per JNI call, 100+ calls/sec) which floods logcat + // and causes the system to kill the app. + let filter = EnvFilter::new("warn,wzp_android=info,wzp_proto=info,wzp_transport=info,wzp_codec=info,wzp_fec=info,wzp_crypto=info"); + let _ = tracing_subscriber::registry() + .with(layer) + .with(filter) + .try_init(); } }); }); diff --git a/scripts/build-android-cloud.sh b/scripts/build-android-cloud.sh index bf796e6..a71d36d 100755 --- a/scripts/build-android-cloud.sh +++ b/scripts/build-android-cloud.sh @@ -196,6 +196,12 @@ do_upload() { do_build() { log "Building Rust native library (arm64-v8a, release)..." + # Clean Rust release target to force full rebuild. + # cargo-ndk only copies libc++_shared.so when it actually links — a partial + # clean that skips relinking leaves libc++_shared.so missing from jniLibs. + ssh_cmd "rm -rf /root/wzp-build/target/aarch64-linux-android/release \ + /root/wzp-build/android/app/src/main/jniLibs/arm64-v8a" + # ANDROID_NDK must be set (not just ANDROID_NDK_HOME) — cmake checks it ssh_cmd "source \$HOME/.cargo/env && \ export ANDROID_HOME=\$HOME/android-sdk && \