diff --git a/project/jni/sdl-2.0/android-project/src/org/libsdl/app/SDLActivity.java b/project/jni/sdl-2.0/android-project/src/org/libsdl/app/SDLActivity.java index 880f24bde..014af000f 100644 --- a/project/jni/sdl-2.0/android-project/src/org/libsdl/app/SDLActivity.java +++ b/project/jni/sdl-2.0/android-project/src/org/libsdl/app/SDLActivity.java @@ -58,7 +58,7 @@ public class SDLActivity extends Activity { //System.loadLibrary("SDL2_net"); //System.loadLibrary("SDL2_ttf"); System.loadLibrary("application"); - System.loadLibrary("sdl2_main"); + System.loadLibrary("sdl_main"); } // Setup diff --git a/project/jni/sdl_main/Android.mk b/project/jni/sdl_main/Android.mk index 82c50b850..c31d21623 100644 --- a/project/jni/sdl_main/Android.mk +++ b/project/jni/sdl_main/Android.mk @@ -13,7 +13,7 @@ LOCAL_CFLAGS := -DSDL_JAVA_PACKAGE_PATH=$(SDL_JAVA_PACKAGE_PATH) -DSDL_CURDIR_PA LOCAL_CPP_EXTENSION := .cpp -LOCAL_SRC_FILES := sdl_main.c +LOCAL_SRC_FILES := sdl_main.c SDL_android_main.cpp LOCAL_SHARED_LIBRARIES := sdl-$(SDL_VERSION) application LOCAL_LDLIBS := -llog diff --git a/project/jni/sdl_main/SDL_android_main.cpp b/project/jni/sdl_main/SDL_android_main.cpp new file mode 100644 index 000000000..126963cf0 --- /dev/null +++ b/project/jni/sdl_main/SDL_android_main.cpp @@ -0,0 +1,42 @@ + +#include "SDL_config.h" + +#ifdef __ANDROID__ + +/* Include the SDL main definition header */ +#include "SDL_main.h" + +/******************************************************************************* + Functions called by JNI +*******************************************************************************/ +#include + +// Called before SDL_main() to initialize JNI bindings in SDL library +extern "C" void SDL_Android_Init(JNIEnv* env, jclass cls); + +// Library init +extern "C" jint JNI_OnLoad(JavaVM* vm, void* reserved) +{ + return JNI_VERSION_1_4; +} + +// Start up the SDL app +extern "C" void Java_org_libsdl_app_SDLActivity_nativeInit(JNIEnv* env, jclass cls, jobject obj) +{ + /* This interface could expand with ABI negotiation, calbacks, etc. */ + SDL_Android_Init(env, cls); + + /* Run the application code! */ + int status; + char *argv[2]; + argv[0] = strdup("SDL_app"); + argv[1] = NULL; + status = SDL_main(1, argv); + + /* Do not issue an exit or the whole application will terminate instead of just the SDL thread */ + //exit(status); +} + +#endif /* __ANDROID__ */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/project/jni/sdl_main/sdl_main.c b/project/jni/sdl_main/sdl_main.c index b03d4fcad..d61e83a19 100644 --- a/project/jni/sdl_main/sdl_main.c +++ b/project/jni/sdl_main/sdl_main.c @@ -1,8 +1,4 @@ -#if SDL_VERSION_ATLEAST(2,0,0) -#include "SDL_config.h" -#endif - #include #include #include @@ -13,32 +9,6 @@ #include "SDL_main.h" #if SDL_VERSION_ATLEAST(2,0,0) - - - -// Called before SDL_main() to initialize JNI bindings in SDL library -extern void SDL_Android_Init(JNIEnv* env, jclass cls); - -// Start up the SDL app -void Java_org_libsdl_app_SDLActivity_nativeInit(JNIEnv* env, jclass cls, jobject obj) -{ - /* This interface could expand with ABI negotiation, calbacks, etc. */ - SDL_Android_Init(env, cls); - - SDL_SetMainReady(); - - /* Run the application code! */ - int status; - char *argv[2]; - argv[0] = SDL_strdup("SDL_app"); - argv[1] = NULL; - status = SDL_main(1, argv); - - /* Do not issue an exit or the whole application will terminate instead of just the SDL thread */ - //exit(status); -} - - #else #include "SDL_android.h" #endif