rust-mobile/ndk

Custom intent broken since cargo-apk 0.9.0

Hoodad opened this issue ยท 4 comments

Hello!

As the title suggests the custom intent filtration appears to been broken since release 0.9.0. In cargo-apk version 0.8.2 things worked as expected. And looking into what code changed between 0.8.2 and 0.9.0 I found this #241 though I'm not sure if this the culprit.

This issue can be reproduced by building using cargo-apk 0.8.2 and view what intents the app have registered to and building the same app using a newer of cargo-apk.

Can you show the declaration of custom intent filters and the aapt dump xmltree output (or pretty-printed from cargo-apk) on both versions?

This was a breaking change iirc because of the rename from intent_filter to intent_filters. Perhaps it should've had a DEserialize(rename = "intent_filter")?

EDIT: And the readme wasn't updated - D'oh!

Greatly appreciate the rapid response! ๐Ÿ‘

I assume it its not needed to show the dump as your PR addresses the root issue and fixes it. But for reference I can confirm that the APK-files generated from the two versions of cargo-apk are different in terms of what intents are registered.

Side-note, the aapt dump xmltree was a nice tool and I'm happy you introduced it ๐Ÿ˜„

as your PR addresses the root issue and fixes it

That means you've tested the PR? Thanks for confirming!

Side-note, the aapt dump xmltree was a nice tool and I'm happy you introduced it ๐Ÿ˜„

There are more cool tools in there! Note that there's also aapt2 as the successor to aapt!

Glad I could be of (quick) help, and also apologies for breaking it in the first place!

That means you've tested the PR? Thanks for confirming!

No I just tested using 0.8.2 and 0.9.2 and can confirm that its the intent that are the difference.

While I just now also tried verifying the PR by building locally I cannot seem to get configuration in line to use LLD rather then cc (issues related to me being on Windows). I tried setting up a cargo\config.toml specifying

[target.aarch64-linux-android]
rustflags = ["-C", "linker-flavor=ld.lld"]

But no luck ๐Ÿ˜ž I'm stuck at error: linker 'cc' not found.

EDIT:
Sorry I messed up the build steps big time, I tried building cargo build --release and I got thrown of by the error about ndk-sys only compiling for Android, hence my previous reply . Where I should just compiled cargo-apk, doing that provided a functional locally built cargo-apk.exe with your PR.
And with your PR the apk file looks good and have all the intents registered once again ๐Ÿ‘