ndk-sys breaking changes

cargo

39 curated breaking changes across major versions of ndk-sys. Use this as a migration checklist before bumping dependencies.

39
changes
Breaking changes by transition
  • ndk-0.8.0 \u2192 ndk-sys-0.5.0breaking

    Add `sync` feature for linking against `libsync.so`. (#423)

  • ndk-0.8.0 \u2192 ndk-sys-0.5.0breaking

    Add `font`, `font_matcher`, `system_fonts` bindings. (#397)

  • ndk-glue-0.6.0 \u2192 ndk-sys-0.3.0breaking

    Regenerate against NDK 23.1.7779620, now including all Android-related headers. (#201)

  • ndk-0.7.0 \u2192 ndk-glue-0.7.0breaking

    **Breaking:** Transpose `LockReadGuard<Option<T>>` into `Option<LockReadGuard<T>>` to only necessitate an `Option` unpack/`unwrap()` once. (#282)

  • cargo-apk-0.9.4 \u2192 ndk-build-0.8.0breaking

    Fix missing `.exe` extension for `adb` on Windows inside `detect_abi()`. ([#339](https://github.com/rust-windowing/android-ndk-rs/pull/339))

  • cargo-apk-0.9.4 \u2192 ndk-build-0.8.0breaking

    `start()` now returns the PID of the started app process (useful for passing to `adb logcat --pid`). ([#331](https://github.com/rust-windowing/android-ndk-rs/pull/331))

  • cargo-apk-0.9.4 \u2192 ndk-build-0.8.0breaking

    Inherit `ndk_gdb()` function from `cargo-apk` with the appropriate script extension across platforms. ([#330](https://github.com/rust-windowing/android-ndk-rs/pull/330), [#258](https://github.com/rust-windowing/android-ndk-rs/pull/258))

  • cargo-apk-0.9.4 \u2192 ndk-build-0.8.0breaking

    Provide `adb` path to `ndk-gdb`, allowing it to run without `adb` in `PATH`. ([#343](https://github.com/rust-windowing/android-ndk-rs/pull/343))

  • cargo-apk-0.9.4 \u2192 ndk-build-0.8.0breaking

    Add `adb` device serial parameter to `detect_abi()` and `Apk::{install,start}()`. ([#329](https://github.com/rust-windowing/android-ndk-rs/pull/329))

  • cargo-apk-0.9.2 \u2192 ndk-build-0.6.0breaking

    **Breaking:** Add `disable_aapt_compression` field to `ApkConfig` to disable `aapt` compression. ([#283](https://github.com/rust-windowing/android-ndk-rs/pull/283))

  • cargo-apk-0.9.0 \u2192 ndk-build-0.5.0breaking

    Add `android:exported` attribute to the manifest's `Activity` element. ([#242](https://github.com/rust-windowing/android-ndk-rs/pull/242))

  • cargo-apk-0.9.0 \u2192 ndk-build-0.5.0breaking

    Add `android:sharedUserId` attribute to the manifest's top-level `manifest` element. ([#252](https://github.com/rust-windowing/android-ndk-rs/pull/252))

  • cargo-apk-0.9.0 \u2192 ndk-build-0.5.0breaking

    **Breaking:** Remove default insertion of `MAIN` intent filter through a custom serialization function, this is better filled in by the default setup in `cargo-apk`. ([#241](https://github.com/rust-windowing/android-ndk-rs/pull/241))

  • cargo-apk-0.9.0 \u2192 ndk-build-0.5.0breaking

    Add `queries` element to the manifest's top-level `manifest` element. ([#259](https://github.com/rust-windowing/android-ndk-rs/pull/259))

  • ndk-sys-0.5.0 \u2192 ndk-0.9.0breaking

    `media::image_reader::BufferRemovedListener`;

  • ndk-sys-0.5.0 \u2192 ndk-0.9.0breaking

    `audio::AudioStreamErrorCallback`;

  • ndk-sys-0.5.0 \u2192 ndk-0.9.0breaking

    `audio::AudioStreamDataCallback`;

  • ndk-sys-0.5.0 \u2192 ndk-0.9.0breaking

    `media::image_reader::ImageListener`;

  • ndk-sys-0.5.0 \u2192 ndk-0.9.0breaking

    **Breaking:** Require all `dyn Fn*` types to implement `Send` when the FFI implementation invokes them on a separate thread: (#455)

  • ndk-sys-0.4.1 \u2192 ndk-0.8.0-beta.0breaking

    bitmap: Add `try_format()` to `AndroidBitmapInfo` to handle unexpected formats without panicking. (#395)

  • ndk-sys-0.4.1 \u2192 ndk-0.8.0-beta.0breaking

    **Breaking:** Upgrade `num_enum` crate from `0.5.1` to `0.7`. (#398, #419)

  • ndk-sys-0.4.1 \u2192 ndk-0.8.0-beta.0breaking

    **Breaking:** Upgrade `bitflags` crate from `1` to `2`. (#394)

  • ndk-sys-0.4.1 \u2192 ndk-0.8.0-beta.0breaking

    **Breaking:** Renamed and moved "`media`" error types and helpers to a new `media_error` module. (#399)

  • ndk-sys-0.4.1 \u2192 ndk-0.8.0-beta.0breaking

    **Breaking:** media_codec: Wrap common dequeued-buffer status codes in enum. (#401)

  • ndk-sys-0.5.0-beta.0 \u2192 ndk-0.8.0breaking

    **Breaking:** Upgrade `num_enum` crate from `0.5.1` to `0.7`. (#398, #419)

  • ndk-sys-0.5.0-beta.0 \u2192 ndk-0.8.0breaking

    **Breaking:** Upgrade `bitflags` crate from `1` to `2`. (#394)

  • ndk-sys-0.5.0-beta.0 \u2192 ndk-0.8.0breaking

    bitmap: Add `try_format()` to `AndroidBitmapInfo` to handle unexpected formats without panicking. (#395)

  • ndk-sys-0.5.0-beta.0 \u2192 ndk-0.8.0breaking

    Add `Font` bindings. (#397)

  • ndk-sys-0.5.0-beta.0 \u2192 ndk-0.8.0breaking

    **Breaking:** Renamed, moved and flattened "`media`" error types and helpers to a new `media_error` module. (#399, #432)

  • ndk-build-0.7.0 \u2192 ndk-0.7.0breaking

    Implement `HasRawWindowHandle` directly on `NativeWindow`. (#274, #319)

  • ndk-build-0.7.0 \u2192 ndk-0.7.0breaking

    **Breaking:** audio: Rename from `aaudio` to `audio` and drop `A` prefix. (#273)

  • ndk-build-0.7.0 \u2192 ndk-0.7.0breaking

    native_window: Use `release`/`acquire` for `Drop` and `Clone` respectively. (#207)

  • ndk-build-0.7.0 \u2192 ndk-0.7.0breaking

    **Breaking:** Upgrade to [`ndk-sys 0.4.0`](../ndk-sys/CHANGELOG.md#040-2022-07-XXXX) and use new `enum` newtype wrappers. (#245)

  • ndk-build-0.7.0 \u2192 ndk-0.7.0breaking

    Add `MediaCodec` and `MediaFormat` bindings. (#216)

  • ndk-glue-0.5.1 \u2192 cargo-apk-0.9.0breaking

    **Breaking:** Default `target_sdk_version` to `30` or lower (instead of the highest supported SDK version by the detected NDK toolchain) for more consistent interaction with Android backwards compatibility handling and its increasingly strict usage rules: https://developer.android.com/distribute/best-practices/develop/target-sdk ([#203](https://github.com/rust-windowing/android-ndk-rs/pull/203))

  • ndk-glue-0.5.1 \u2192 cargo-apk-0.9.0breaking

    Allow manifest `package` property to be provided in `Cargo.toml`. ([#236](https://github.com/rust-windowing/android-ndk-rs/pull/236))

  • ndk-glue-0.5.1 \u2192 cargo-apk-0.9.0breaking

    Add `MAIN` intent filter in `from_subcommand` instead of relying on a custom serialization function in `ndk-build`. ([#241](https://github.com/rust-windowing/android-ndk-rs/pull/241))

  • ndk-glue-0.5.1 \u2192 cargo-apk-0.9.0breaking

    Export the sole `NativeActivity` (through `android:exported="true"`) to allow it to be started by default if targeting Android S or higher. ([#242](https://github.com/rust-windowing/android-ndk-rs/pull/242))

  • ndk-glue-0.5.1 \u2192 cargo-apk-0.9.0breaking

    `cargo-apk` version can now be queried through `cargo apk version`. ([#218](https://github.com/rust-windowing/android-ndk-rs/pull/218))

API access

Get this data programmatically \u2014 free, no authentication.

curl https://depscope.dev/api/breaking/cargo/ndk-sys
ndk-sys breaking changes — Cargo migration guide | DepScope