Фатальное исключение с SDL-дроидом и GThread - PullRequest
0 голосов
/ 07 февраля 2012

Почему я получаю эту ошибку?

I/System.out( 1852): libSDL: accelerometer start required: false
W/dalvikvm( 1852): No implementation found for native Lcom/starlon/froyvisuals/DemoRenderer;.nativeInit (Ljava/lang/String;Ljava/lang/String;I)V
W/dalvikvm( 1852): threadid=10: thread exiting with uncaught exception (group=0x40176560)
E/AndroidRuntime( 1852): FATAL EXCEPTION: GLThread
E/AndroidRuntime( 1852): java.lang.UnsatisfiedLinkError: nativeInit
E/AndroidRuntime( 1852):    at com.starlon.froyvisuals.DemoRenderer.nativeInit(Native Method)
E/AndroidRuntime( 1852):    at com.starlon.froyvisuals.DemoRenderer.onDrawFrame(Video.java:363)
E/AndroidRuntime( 1852):    at com.starlon.froyvisuals.GLSurfaceView_SDL$GLThread.run(GLSurfaceView_SDL.java:996)
W/ActivityManager(  112):   Force finishing activity com.starlon.froyvisuals/.MainActivity
I/System.out( 1852): libSDL: stopping accelerometer
V/SDL     ( 1852): GLSurfaceView_SDL::onPause()

Ответы [ 2 ]

1 голос
/ 07 февраля 2012

Выдается, если виртуальная машина Java не может найти подходящее определение на родном языке метода, объявленного как родной

Кажется, несовместимость с нативной библиотекой libSDL. Это может быть более старая версия (или) более новая версия.

0 голосов
/ 28 ноября 2015

Вам нужно определить void Java_org_libsdl_app_SDLActivity_nativeInit(JNIEnv * env, jclass cls, jobject obj) самостоятельно (это ваша точка входа).Если вы используете C ++, позаботьтесь о том, чтобы определить его сигнатуру во внешнем блоке следующим образом:

extern "C" {
  JNIEXPORT void JNICALL Java_org_libsdl_app_SDLActivity_nativeInit(JNIEnv* env, jclass cls, jobject obj);
};

Скелет основной функции можно найти в https://github.com/spurious/SDL-mirror/blob/master/src/main/android/SDL_android_main.c

...