aboutsummaryrefslogtreecommitdiffhomepage
path: root/examples/android/java/bazel/jni.cc
diff options
context:
space:
mode:
Diffstat (limited to 'examples/android/java/bazel/jni.cc')
-rw-r--r--examples/android/java/bazel/jni.cc23
1 files changed, 23 insertions, 0 deletions
diff --git a/examples/android/java/bazel/jni.cc b/examples/android/java/bazel/jni.cc
new file mode 100644
index 0000000000..b103f45145
--- /dev/null
+++ b/examples/android/java/bazel/jni.cc
@@ -0,0 +1,23 @@
+#include <jni.h>
+#include <stdlib.h>
+#include <string.h>
+
+const char* hello = "Hello JNI";
+
+static jstring NewStringLatin1(JNIEnv *env, const char *str) {
+ int len = strlen(str);
+ jchar *str1;
+ str1 = reinterpret_cast<jchar *>(malloc(len * sizeof(jchar)));
+
+ for (int i = 0; i < len ; i++) {
+ str1[i] = (unsigned char) str[i];
+ }
+ jstring result = env->NewString(str1, len);
+ free(str1);
+ return result;
+}
+
+extern "C" JNIEXPORT jstring JNICALL
+Java_bazel_Jni_hello(JNIEnv *env, jclass clazz) {
+ return NewStringLatin1(env, hello);
+}