This project has been on hold since 2016.
All the data on this site is still available (and will stay available) but not actual anymore.
You might be interested in checking out Dmitry Moskalchuk's portfolio website to learn about his other projects.
请注意!!!您现在看到的是已过期的旧版本CrystaX NDK.
新版本CrystaX NDK 10.3.2已发布, 提供了很多新功能和改进; 请尽量使用最新版本.


Here are customized distribution of Android NDK r4b which I have rebuilt from official sources. Support of C++ exceptions, RTTI and Standard C++ Library added. There was no many modifications, you can see them in my patch

Update: New bug-fix release android-ndk-r4-crystax-2 ready! List of problems fixed:

Update 2: New bug-fix release android-ndk-r4-crystax-3 ready! One important fix included:

Update 3: New bug-fix release android-ndk-r4-crystax-4 ready! List of problems fixed:


CrystaX NDK包含若干开源许可证. 详见每个模块的版权声明文件.

请注意CrystaX NDK发布包中也包括编译器,链接器,文档等的预编译二进制文件. 工具链的源码在GitHub (你可以使用编译脚本自动下载它).

预编译的GCC和其他二进制文件(GDB, binutils 等等)基于the GNU General Public License (GPL) 或 the GNU Lesser General Public License (LGPL). 详见COPYING和COPYING.LIB,位于 $NDK/toolchains/$tc/prebuilt/$system.

预编译的LLVM/Clang工具链基于 LLVM "BSD" license.

基本上, 授权规则等同于Google's Android NDK - 例如, 允许商业&非商业用途. 唯一区别是CrystaX部分, 基于 BSD 2-clause license.


文件 大小 SHA256校验值 141.917 MB 664d3b53fdde47c...100e63773675f2
android-ndk-r4-darwin-x86-crystax-4.tar.bz2 121.305 MB 00a63aecf86fcb7...ba13eaa3c9722a
android-ndk-r4-linux-x86-crystax-4.tar.bz2 115.871 MB dc399e8a8d6dbe0...afd10068b0765a


You can also build your own distribution if you don't want to use my prebuilt versions. To do it, follow instructions below.

Required development tools:

  • For Windows, a recent release of Cygwin is required
  • GNU Make 3.81 or later
  • GNU Makeinfo (most recent version)
  • GIT (for downloading toolchain sources)
  • Most recent GNU Libtool packages (automake, autoconf etc)
  • GNU C/C++ 3.x or later (for Windows, it should be exactly 3.x, not 4.x)
  • ncurses library (for Cygwin, it should be ncurses-devel package)
  • GNU flex (most recent version)
  • patch utility. Most likely, it is already installed if you are using Linux or Mac OS X; however, in Cygwin it should be installed explicitly


  • Download my patch and store it somewhere
  • Download android-ndk-r4b for your platform from android web site
  • Unpack downloaded file and go to directory android-ndk-r4b
  • For Windows 7 and Vista users: fix permissions of the just unpacked folder. Type in terminal:
    cmd /c "icacls . /grant Everyone:(F) /T"
  • Apply my patch:
    patch -p1 <path-to-my-patch
  • Point environment variable ANDROID_NDK_ROOT to the current directory:
    export ANDROID_NDK_ROOT=`pwd`
  • For Windows users: point environment variable CC to the GCC 3:
    export CC=gcc-3
  • For Mac users: if you're planned to run built package on earlier versions of Mac OS X (say, you build it on Snow Leopard but want to run it also on Leopard), environment variables CC and LDFLAGS should be specified. If this is not case, just ignore this point. Otherwise, type in terminal:
    CC="gcc -isystem /Developer/SDKs/MacOSX10.4u.sdk -mmacosx-version-min=10.4"
    export CC LDFLAGS
    This will result in binaries which could run on Tiger and later versions; change SDK to another if minimal target is not Tiger.
  • Download android toolchain sources:
    ./build/tools/ --release=myrelease --package --over-http --verbose --for-date=2010-07-15
    It will take some time depending on you network connectivity. Finally, it will download sources and pack them to the package /tmp/android-ndk-toolchain-myrelease.tar.bz2
  • Run build script:
    ./build/tools/ --verbose --package --toolchain-src-pkg=/tmp/android-ndk-toolchain-myrelease.tar.bz2
    It will unpack android toolchain sources (including binutils, gcc and gdb), patch and compile them. It could take lot of time depending on your configuration so be patient.
  • Finally, when build script finished, it will print name of the compiled toolchain (something like /tmp/android-ndk-prebuilt-20100716-linux-x86.tar.bz2, actual name will depend on current date). Run the commands:
    rm -Rf ./build/prebuilt
    tar xjvf /tmp/android-ndk-prebuilt-20100716-linux-x86.tar.bz2
  • Now you are ready to test it. Try to compile application hello-jni (I've modified it, so there are STL and exceptions in the code) using instructions from Android team
  • Enjoy!


Our contributors: