github android/ndk r28-rc2
NDK r28 RC 2

pre-release15 hours ago

Downloads

android {
    ndkVersion "28.0.12916984-rc2"
}
Platform Package Size (Bytes) SHA1 Checksum
Windows android-ndk-r28-beta3-windows.zip 749041370 72e641edd8ef24b7b3c4935ac0b0340d87251450
macOS android-ndk-r28-beta3-darwin.dmg 1047255644 d6158946def7554a999839e9530c8087d9339d7f
Linux android-ndk-r28-beta3-linux.zip 723256962 69348e24577122339b3996d2ef1ac4e6f7f5d627

Changelog

Report issues to GitHub.

For Android Studio issues, go to https://b.android.com and file a bug using the
Android Studio component, not the NDK component.

If you're a build system maintainer that needs to use the tools in the NDK
directly, see the build system maintainers guide.

Announcements

  • The 16 KiB page size compatibility option that was added in r27 is now on by
    default. If necessary, you can still opt-out (see below).

Changes

  • Updated LLVM to clang-r530567c. See clang_source_info.md in the toolchain
    directory for version information.

    • Runtime libraries for non-Android have been removed reduce disk usage.
    • libc++ now includes debug info to aid debugging. This may make
      libc++_shared.so and any binaries that link libc++_static.a much larger
      before they are stripped. The Android Gradle Plugin will strip binaries when
      creating APKs, so this should not affect production apps.
    • Issue 2046: libclang and libclang-cpp are now supported.
  • PAGE_SIZE is no longer defined by default for arm64-v8a or x86_64. To
    re-enable, set APP_SUPPORT_FLEXIBLE_PAGE_SIZES (ndk-build) or
    ANDROID_SUPPORT_FLEXIBLE_PAGE_SIZES (CMake) to false. See Support 16 KB
    page sizes
    for more information.

  • The default alignment of shared libraries for arm64-v86 and x86_64 is now 16k.
    To revert to 4k alignment, set APP_SUPPORT_FLEXIBLE_PAGE_SIZES (ndk-build)
    or ANDROID_SUPPORT_FLEXIBLE_PAGE_SIZES (CMake) to false. See Support 16 KB
    page sizes
    for more information.

  • Issue 1307: Removed non-NDK binder headers. A number of binder headers that
    should have been shipped with aidl were mistakenly shipped in the NDK. These
    headers are tightly coupled to the version of aidl used, so this introduced an
    unwanted version restriction between build-tools and the NDK. If you are using
    the NDK aidl backend, you will need to pass the aidl include path when
    building. See the aidl backend docs for more information.

  • Issue 2058: Weak API references now work for libc APIs. This was enabled
    by conditionally removing the #if __ANDROID_API__ >= ... guards that
    previously wrapped declarations in libc headers when weak API references are
    used. When weak API references are not used (the default behavior), the
    declarations will still be hidden by the preprocessor.

    If your project contains polyfills for any of those APIs and uses weak API
    references
    , this change may break your build due to the conflicting
    declarations. The simplest fix is to rename your polyfill to not collide with
    libc. For example, rename conflicting_api to conflicting_api_fallback and
    call that instead. Use #define conflicting_api() conflicting_api_fallback()
    if you want to avoid rewriting callsites.

    Please open a bug if you run into issues with existing polyfills. We may be
    able to add the polyfill directly to the NDK.

  • Issue 2100: Raised minimum required CMake version of the NDK's toolchain
    file from 3.6.0 to 3.10.0 to address warnings from new versions of CMake about
    upcoming loss of compatibility with versions older than 3.10.

Don't miss a new ndk release

NewReleases is sending notifications on new releases.