Report issues to GitHub.
For Android Studio issues, follow the docs on the Android Studio site.
The deprecated headers have been removed. Unified Headers are now simply The Headers.
For migration tips, see Unified Headers Migration Notes.
GCC is no longer supported. It will not be removed from the NDK just yet, but is no longer receiving backports. It cannot be removed until after libc++ has become stable enough to be the default, as some parts of gnustl are still incompatible with Clang. It will be removed when the other STLs are removed in r18.
libc++
is out of beta and is now the preferred STL in the NDK. Starting in r17, libc++
is the default STL for CMake and standalone toolchains. If you manually selected a different STL, we strongly encourage you to move to libc++
. For more details, see this blog post.
Support for ARMv5 (armeabi), MIPS, and MIPS64 are deprecated. They will no longer build by default with ndk-build, but are still buildable if they are explicitly named, and will be included by “all”, “all32”, and “all64”. Support for each of these has been removed in r17.
Both CMake and ndk-build will issue a warning if you target any of these ABIs.
-Oz
by default.-latomic
to your ldflags should no longer be necessary.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
.-fintegrated-as
for MIPS64 for custom build systems.-Oz
and -fexceptions
.