author Sam Lantinga <>
Thu, 10 Oct 2013 21:51:39 -0700
changeset 7804 1f85fb33694b
permissions -rw-r--r--
Fixed bug 2146 - Enable static linking of libSDL on Android

Denis Bernard

This patch to adds support for static linking of libSDL for Android applications. A patched readme with static build instructions is also provided.

It does not break existing build environments setup according to the README-android.txt since the static library version will not be built in not required.

The static build uses the Android NDK module system (see docs/IMPORT-MODULE.html in the NDK folder and step 5 in the instructions below).

1. Copy the android-project directory wherever you want to keep your projects
and rename it to the name of your project.
2. Create a symlink to SDL/src/main/android/SDL_android_main.c as
3. Rename <project>/jni/src/ to <project>/jni/src/
(overwrite the existing one)
4. Edit <project>/jni/src/ to include your source files
5. create and export an environment variable named NDK_MODULE_PATH that points
to the parent directory of this SDL directory. e.g.:

export NDK_MODULE_PATH="$PWD"/..

6. Edit <project>/src/org/libsdl/app/ and remove the call to
System.loadLibrary("SDL2") line 42.
7. Run 'ndk-build' (a script provided by the NDK). This compiles the C source

Although this requires an environment variable to be setup, it can be added once and for all to the main of the project.
     1 LOCAL_PATH := $(call my-dir)
     3 include $(CLEAR_VARS)
     5 LOCAL_MODULE := main
     7 LOCAL_SRC_FILES := YourSourceHere.c
    11 include $(BUILD_SHARED_LIBRARY)
    12 $(call import-module,SDL)LOCAL_PATH := $(call my-dir)