diff options
Diffstat (limited to 'apps/hosted/android/keyboard.c')
-rw-r--r-- | apps/hosted/android/keyboard.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/apps/hosted/android/keyboard.c b/apps/hosted/android/keyboard.c index 9407d970fd..7c16cff079 100644 --- a/apps/hosted/android/keyboard.c +++ b/apps/hosted/android/keyboard.c @@ -59,14 +59,17 @@ static void kdb_init(void) { semaphore_init(&kbd_wakeup, 1, 0); /* get the class and its constructor */ - RockboxKeyboardInput_class = e->FindClass(env_ptr, + jclass kbInput_class = e->FindClass(env_ptr, "org/rockbox/RockboxKeyboardInput"); + RockboxKeyboardInput_class = e->NewGlobalRef(env_ptr, kbInput_class); jmethodID constructor = e->GetMethodID(env_ptr, RockboxKeyboardInput_class, "<init>", "()V"); - RockboxKeyboardInput_instance = e->NewObject(env_ptr, - RockboxKeyboardInput_class, - constructor); + jobject kbInput_instance = e->NewObject(env_ptr, + RockboxKeyboardInput_class, + constructor); + RockboxKeyboardInput_instance = e->NewGlobalRef(env_ptr, + kbInput_instance); kbd_inputfunc = e->GetMethodID(env_ptr, RockboxKeyboardInput_class, "kbd_input", "(Ljava/lang/String;" |