Почему я получаю эту ошибку?
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()
Выдается, если виртуальная машина Java не может найти подходящее определение на родном языке метода, объявленного как родной
Кажется, несовместимость с нативной библиотекой libSDL. Это может быть более старая версия (или) более новая версия.
Вам нужно определить void Java_org_libsdl_app_SDLActivity_nativeInit(JNIEnv * env, jclass cls, jobject obj) самостоятельно (это ваша точка входа).Если вы используете C ++, позаботьтесь о том, чтобы определить его сигнатуру во внешнем блоке следующим образом:
void Java_org_libsdl_app_SDLActivity_nativeInit(JNIEnv * env, jclass cls, jobject obj)
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