Report issues to GitHub.
For Android Studio issues, follow the docs on the Android Studio site.
GCC has been removed.
libc++
is now the default STL for CMake and standalone toolchains. If you manually selected a different STL, we strongly encourage you to move to libc++
. Note that ndk-build still defaults to no STL. For more details, see this blog post.
gnustl, gabi++, and stlport have been removed.
Support for ARMv5 (armeabi), MIPS, and MIPS64 has been removed. Attempting to build any of these ABIs will result in an error.
Support for ICS (android-14 and android-15) has been removed. Apps using executables no longer need to provide both a PIE and non-PIE executable.
The Play Store will require 64-bit support when uploading an APK beginning in August 2019. Start porting now to avoid surprises when the time comes. For more information, see this blog post.
--eh-frame-hdr
to the linker even for static executables, fixing exception handling.libandroid_support
is no longer used when your NDK API level is greater than or equal to 21 (Lollipop). Build system maintainers: be sure to update your build systems to account for this.ANDROID_NDK_REVISION
: The full string in the source.properties file.ANDROID_NDK_MAJOR
: The major revision of the NDK. For example: the 16 in r16b.ANDROID_NDK_MINOR
: The minor revision of the NDK. For example: the b (represented as 1) in r16b.ANDROID_NDK_BUILD
: The build number of the NDK. This is 0 in the case of a local development build.ANDROID_NDK_BETA
: The beta version of the NDK. This is 0 for a stable release.APP_WRAP_SH
to ndk-build.APP_WRAP_SH
), which will install a single script for every ABI, and an ABI-specific form (APP_WRAP_SH_arm64-v8a
, etc) to allow for per-ABI customization of the wrap.sh script.-fno-integrated-as
for arm32 by default. If your project contains hand written assembly, you may need to pass this flag.APP_CLANG_TIDY := true
, or per-module with LOCAL_CLANG_TIDY := true
. * Pass specific clang-tidy flags such as -checks
with APP_CLANG_TIDY_FLAGS
or LOCAL_CLANG_TIDY_FLAGS
. * As usual, module settings override application settings. * By default no flags are passed to clang-tidy, so only the checks enabled by default in clang-tidy will be enabled. View the default list with clang-tidy -list-checks
. * By default clang-tidy warnings are not errors. This behavior can be changed with -warnings-as-errors=*
.thread_local
variables with non-trivial destructors will cause segfaults if the containing library is dlclose
ed on devices running M or newer, or devices before M when using a static STL. The simple workaround is to not call dlclose
.