From 3a316e992eb4a3c18be8b340f4d43c0cdb29b188 Mon Sep 17 00:00:00 2001 From: sergey-miryanov Date: Mon, 2 Dec 2013 19:30:52 +0600 Subject: [PATCH 1/2] Allow to pass haxe string as java Object to JNI --- project/src/platform/android/JNI.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/project/src/platform/android/JNI.cpp b/project/src/platform/android/JNI.cpp index 5e87afbfe..7ac6c153a 100644 --- a/project/src/platform/android/JNI.cpp +++ b/project/src/platform/android/JNI.cpp @@ -600,6 +600,12 @@ bool HaxeToJNI(JNIEnv *inEnv, value inValue, JNIType inType, jvalue &out) jobject obj = 0; if (!AbstractToJObject(inValue,obj)) { + if (val_is_string(inValue)) + { + out.l = inEnv->NewStringUTF(val_string(inValue)); + return true; + } + ELOG("HaxeToJNI : jniObject not an object %p", inValue); return false; } From 27536ce74c0a22b6906b512d29b14ab330937fbb Mon Sep 17 00:00:00 2001 From: sergey-miryanov Date: Wed, 4 Dec 2013 20:32:40 +0600 Subject: [PATCH 2/2] Fix JNI if calling member methods that return int --- project/src/platform/android/JNI.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/src/platform/android/JNI.cpp b/project/src/platform/android/JNI.cpp index f04e47dcf..5c22800ff 100644 --- a/project/src/platform/android/JNI.cpp +++ b/project/src/platform/android/JNI.cpp @@ -1119,7 +1119,7 @@ struct JNIMethod : public lime::Object result = alloc_int(env->CallShortMethodA(inObject, mMethod, jargs)); break; case jniInt: - result = alloc_int(env->CallIntMethodA(mClass, mMethod, jargs)); + result = alloc_int(env->CallIntMethodA(inObject, mMethod, jargs)); break; case jniLong: result = alloc_int(env->CallLongMethodA(inObject, mMethod, jargs));