ndk=true page.template=sdk ndk.mac64_download=android-ndk-r10e-darwin-x86_64.bin ndk.mac64_bytes=388937326 ndk.mac64_checksum=2cb8893a5701603519d38a7e04c50e81 ndk.linux64_download=android-ndk-r10e-linux-x86_64.bin ndk.linux64_bytes=401522849 ndk.linux64_checksum=19af543b068bdb7f27787c2bc69aba7f ndk.linux32_download=android-ndk-r10e-linux-x86.bin ndk.linux32_bytes=394281908 ndk.linux32_checksum=c3edd3273029da1cbd2f62c48249e978 ndk.win64_download=android-ndk-r10e-windows-x86_64.exe ndk.win64_bytes=419616132 ndk.win64_checksum=8412bb4991a95e08fda50b5a44d95df7 ndk.win32_download=android-ndk-r10e-windows-x86.exe ndk.win32_bytes=396563176 ndk.win32_checksum=1a82445baaf62aec3a46386ab1e5772c page.title=NDK Downloads @jd:body

Select, from the table below, the NDK package for your development platform. For information about the changes in the newest version of the NDK, see Release Notes. For information about earlier revisions, see NDK Revision History.

Downloading

Extraction

The NDK package is a self-extracting binary. To unpack it, follow the procedure for your development platform:

When uncompressed, the NDK files are contained in a directory called android-ndk-<version>. You can rename the NDK directory if necessary and you can move it to any location on your computer. This documentation refers to the NDK directory as <ndk>.

You are now ready to start working with the NDK.

Release Notes

Android NDK, Revision 10e (May 2015)

Important changes:
Important bug fixes:
  • Fixed a crash that occurred when there were OpenMP loops outside of the main thread.
  • Fixed a GCC 4.9 internal compiler error (ICE) that occured when the user declared {@code #pragma GCC optimize ("O0")}, but had a different level of optimization specified on the command line. The {@code pragma} takes precedence.
  • Fixed an error that used to produce a crash with the following error message:
    in add_stores, at var-tracking.c:6000
    
  • Implemented a workaround for a Clang 3.5 issue in which LLVM auto-vectorization generates {@code llvm.cttz.v2i64()}, an instruction with no counterpart in the ARM instruction set.
Other bug fixes:
  • Made the following header and library fixes:
    • Fixed {@code PROPERTY_*} in {@code media/NdkMediaDrm.h}.
    • Fixed {@code sys/ucontext.h} for {@code mips64}.
    • Dropped the Clang version check for {@code __builtin_isnan} and {@code __builtin_isinf}.
    • Added {@code android-21/arch-mips/usr/include/asm/reg.h} and {@code android-21/arch-mips64/usr/include/asm/reg.h}.
  • Fixed a spurious array-bounds warning that GCC 4.9 produced for x86, and reenabled the array bounds warning that GCC 4.9 had produced for ARM. The warning for ARM had previously been unconditionally disabled.
  • Fixed Clang 3.5 for {@code mips} and {@code mips64} to create a writable {@code .gcc_except_table} section, thus matching GCC behavior. This change allows you to avoid the following linker warning:
    .../ld: warning: creating a DT_TEXTREL in a shared object
    
  • Backported a fix for {@code compiler-rt} issues that were causing crashes when Clang compiled for {@code mips64}. For more information, see LLVM Issue 20098.
  • Fixed Clang 3.5 crashes that occurred on non-ASCII comments. (Issue 81440)
  • Fixed {@code stlport collate::compare} to return {@code -1} and {@code 1}. Previously, it had returned arbitrary signed numbers.
  • Fixed {@code ndk-gdb} for 64-bit ABIs. (Issue 118300)
  • Fixed the crash that the HelloComputeNDK sample for RenderScript was producing on Android 4.4 (Android API level 19). For more information, see this page.
  • Fixed {@code libc++ __wrap_iter} for GCC. For more information, see LLVM Issue 22355.
  • Fixed {@code .asm} support for ABI {@code x86_64}.
  • Implemented a workaround for the GCC 4.8 {@code stlport} issue. (Issue 127773)
  • Removed the trailing directory separator {@code \\} from the project path in Windows. (Issue 160584)
  • Fixed a {@code no rule to make target} error that occurred when compiling a single {@code .c} file by executing the {@code ndk-build.cmd} command from {@code gradle}. (Issue 66937)
  • Added the {@code libatomic.a} and {@code libgomp.a} libraries that had been missing from the following host toolchains:
    • {@code aarch64-linux-android-4.9}
    • {@code mips64el-linux-android-4.9}
    • {@code mipsel-linux-android-4.9}
    • {@code x86_64-4.9}
Other changes:
  • Added {@code ld.gold} for {@code aarch64}. The default linker remains {@code ld.bfd}. To explicitly enable {@code ld.gold}, add {@code -fuse-ld=gold} to the {@code LOCAL_LDFLAGS} or {@code APP_LDFLAGS} variable.
  • Built the MIPS and MIPS64 toolchains with {@code binutils-2.25}, which provides improved R6 support.
  • Made {@code -fstandalone-debug} (full debug info) a default option for Clang.
  • Replaced {@code -fstack-protector} with {@code -fstack-protector-strong} for the ARM, AArch64, X86, and X86_64 toolchains for GCC 4.9, Clang 3.5, and Clang 3.6.
  • Added the {@code --package} command-line switch to {@code ndk-gdb} to allow the build system to override the package name. (Issue 56189)
  • Deprecated {@code -mno-ldc1-stc1} for MIPS. This option may not work with the new {@code -fpxx} and {@code -mno-odd-spreg} options, or with the FPXX ABI.
  • Added MIPS MSA and R6 detection to {@code cpu-features}.