Skip to content

Commit 827dd0b

Browse files
committed
dist-apk: declare the adb-run runner; one real run, blocked twice
`[target.x86_64-linux-android] runner = ["adb-run"]`, so `mcpp run --format apk` hands the packed apk to xim:android-platform-tools' adb-run session (#622 A10/C3). Attempted end to end (/dev/kvm present, xim:android-emulator 37.1.11 + xim:android-system-image@24-default-x86_64 booted to sys.boot_completed=1 in ~15s, KVM-accelerated -- the emulator SIGSEGVs at startup, NULL this-pointer at offset 0x98, unless ANDROID_SDK_ROOT points at a directory holding `emulator/` and `platform-tools/` as siblings; the two xim packages install to independent directories, so this member's own future adb-run wiring, or its caller, has to construct that layout itself -- recorded here since it cost most of this measurement's time budget). `mcpp run --format apk` itself is blocked, and not by this member: Running `adb-run … target/.build-mcpp/out/dist-apk/base.apk` ... adb: failed to install .../base.apk: Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES: ... Attempt to get length of null array] `mcpp run --format <name>`'s own operand selection is `artifacts. front()` (2026-09-12 design record, A10) over every `role = "artifact"` action a request's provider submits -- correct for every existing member (`dist-appimage`/`dist-wix`/`dist-apple`), which each submit exactly one. This member submits five (`apk:manifest`/`link`/`libs`/ `align`/`sign`), and `.front()` is the FIRST one submitted, `apk:link`'s own `base.apk` -- unsigned, uninstallable -- not `apk:sign`'s final, signed `apk-consumer.apk`. An engine-side fix (reporting the LAST artifact action, or an explicit "this one is the distributable" marker) is out of this repository's scope; recorded here because it blocks `mcpp run --format apk` for every project this member serves, not only this fixture. Side-stepping it by hand (`adb install` + `am start` on the correctly signed `apk-consumer.apk` directly) installs and launches, then crashes: java.lang.UnsatisfiedLinkError: Unable to load native library ".../lib/x86_64/libapk-consumer.so": undefined symbol: ANativeActivity_onCreate This fixture's `main.cpp` is a plain C++ `main` (by design -- the fixture asserts packaging, not execution: see its own header), not a real `ANativeActivity_onCreate` export, so no run of "1-2-3" through `log.redirect-stdio` was observed. Packaging itself is unaffected and re-verified with mcpp-fix2: `apksigner verify` still reports `CN= Android Debug`, `jar tf` lists `lib/x86_64/libapk-consumer.so`, `lib/x86_64/libc++_shared.so` and `assets/mcpp-run.json`, and `aapt2 dump badging` reports `minSdkVersion:'24'`.
1 parent 8e511f5 commit 827dd0b

1 file changed

Lines changed: 1 addition & 0 deletions

File tree

‎tests/apk-consumer/mcpp.toml‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,3 +31,4 @@ main = "src/main.cpp"
3131
# stated.
3232
[target.x86_64-linux-android]
3333
min_api_level = 24
34+
runner = ["adb-run"]

0 commit comments

Comments
 (0)