Anyone got SDL2 working with GPG-CPP-SDK?

My native method isn’t being found by the Java end

My subclass of Activity has:

Code:
package com.dumbdumber.myproject;

public class SubActivity extends SDLActivity {//which extends Activity

private static native void nativeInitGPGS(SubActivity act);

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    instance = this;
    nativeInitGPGS(this);
}

While main.cpp begins, after first preprocessing directives:

Code:
extern “C”
{
JNIEXPORT void
Java_com_dumbdumber_myproject_SubActivity_nativeInitGPGS(JNIEnv* env, jobject thiz, jobject activity)
{

I get:

10-17 16:12:38.051: D/dalvikvm(4980): Trying to load lib /data/data/com.dumbdumber.myproject/lib/libmain.so 0x423849c8
10-17 16:12:38.055: D/dalvikvm(4980): Added shared lib /data/data/com.dumbdumber.myproject/lib/libmain.so 0x423849c8
10-17 16:12:38.060: V/SDL(4980): onCreate():null
10-17 16:12:38.087: W/dalvikvm(4980): No implementation found for native Lcom/dumbdumber/myproject/SubActivity;.nativeInitGPGS:(Lcom/dumbdumber/myproject/SubActivity;)V
10-17 16:12:38.108: D/AndroidRuntime(4980): Shutting down VM
10-17 16:12:38.108: W/dalvikvm(4980): threadid=1: thread exiting with uncaught exception (group=0x41b73908)
10-17 16:00:52.456: E/AndroidRuntime(4699): FATAL EXCEPTION: main
10-17 16:00:52.456: E/AndroidRuntime(4699): java.lang.UnsatisfiedLinkError: Native method not found: com.dumbdumber.myproject.SubActivity.nativeInitGPGS:(Lcom/dumbdumber/myproject/SubActivity;)V
10-17 16:00:52.456: E/AndroidRuntime(4699): at com.dumbdumber.myproject.SubActivity.nativeInitGPGS(Native Method)
10-17 16:00:52.456: E/AndroidRuntime(4699): at com.dumbdumber.myproject.SubActivity.onCreate(SubActivity)

I believe the native implementation can be placed anywhere and automagickly picked up. I’ve tried placing the C implementation in another cpp body, instead of main.cpp but nothing changes.

Here is my Android.mk

Code:
LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := main

SDL_PATH := …/SDL

LOCAL_C_INCLUDES := $(LOCAL_PATH)/$(SDL_PATH)/include

LOCAL_C_INCLUDES += $(LOCAL_PATH)/…/include
LOCAL_SRC_FILES := $(SDL_PATH)/src/main/android/SDL_android_main.c
main.cpp
#Other stuff removed for clarity

LOCAL_SHARED_LIBRARIES := SDL2_image
SDL2
SDL2_ttf
LOCAL_WHOLE_STATIC_LIBRARIES += gpg_static

LOCAL_LDLIBS := -lGLESv1_CM -lGLESv2 -llog -lz

include $(BUILD_SHARED_LIBRARY)

While I leave loading of the shared libraries to SDLActivity

static {
System.loadLibrary(“SDL2”);
System.loadLibrary(“SDL2_image”);
System.loadLibrary(“SDL2_ttf”);
System.loadLibrary(“main”);
}

I’ve remembered to run ndk-build (twice) in the jni directory and am attempting to run on my phone.

I’ve run my libmain.so through a hexeditor and can confirm it exists, also here’s the first six lines output from nm from the NDK

Code:

    U IMG_Init  
    U IMG_Load  
    U IMG_Quit  

00065454 T JNI_OnLoad
0005c208 T Java_org_libsdl_app_SDLActivity_nativeInit
0006851c T Java_com_dumbdumber_myproject_SubActivity_nativeInitGPGS