From 6082c78c9436045863dc999011050e44ab9afe7e Mon Sep 17 00:00:00 2001 From: Steven Dee Date: Mon, 3 Aug 2015 09:53:26 +0000 Subject: New-style android example - Make the jni target depend on another cc_library. - Disable legacy native support in hello_world. - Make MainActivity load hello_world rather than jni. -- Change-Id: I497ba680eec4e16ee14628294d2c1260db69ad82 Reviewed-on: https://bazel-review.googlesource.com/#/c/1740/ MOS_MIGRATED_REVID=99709707 --- examples/android/java/bazel/BUILD | 7 +++++++ examples/android/java/bazel/MainActivity.java | 2 +- examples/android/java/bazel/jni.cc | 17 ++--------------- examples/android/java/bazel/jni_dep.cc | 17 +++++++++++++++++ examples/android/java/bazel/jni_dep.h | 5 +++++ 5 files changed, 32 insertions(+), 16 deletions(-) create mode 100644 examples/android/java/bazel/jni_dep.cc create mode 100644 examples/android/java/bazel/jni_dep.h (limited to 'examples') diff --git a/examples/android/java/bazel/BUILD b/examples/android/java/bazel/BUILD index 1a6ebe7e76..69973a4567 100644 --- a/examples/android/java/bazel/BUILD +++ b/examples/android/java/bazel/BUILD @@ -9,6 +9,7 @@ android_binary( "MainActivity.java", "Jni.java", ]), + legacy_native_support = 0, manifest = "AndroidManifest.xml", deps = [ ":jni", @@ -19,4 +20,10 @@ android_binary( cc_library( name = "jni", srcs = ["jni.cc"], + deps = [":jni_dep"], +) + +cc_library( + name = "jni_dep", + srcs = ["jni_dep.cc"], ) diff --git a/examples/android/java/bazel/MainActivity.java b/examples/android/java/bazel/MainActivity.java index c50cd4ac02..4fdecd708f 100644 --- a/examples/android/java/bazel/MainActivity.java +++ b/examples/android/java/bazel/MainActivity.java @@ -14,7 +14,7 @@ public class MainActivity extends Activity { Log.v("Bazel", "Hello, Android"); Log.v("Bazel", "Lib says: " + Lib.message()); - System.loadLibrary("jni"); + System.loadLibrary("hello_world"); Log.v("Bazel", "JNI says: " + Jni.hello()); } } diff --git a/examples/android/java/bazel/jni.cc b/examples/android/java/bazel/jni.cc index b103f45145..7a6cf865e4 100644 --- a/examples/android/java/bazel/jni.cc +++ b/examples/android/java/bazel/jni.cc @@ -1,21 +1,8 @@ #include -#include -#include -const char* hello = "Hello JNI"; - -static jstring NewStringLatin1(JNIEnv *env, const char *str) { - int len = strlen(str); - jchar *str1; - str1 = reinterpret_cast(malloc(len * sizeof(jchar))); +#include "examples/android/java/bazel/jni_dep.h" - for (int i = 0; i < len ; i++) { - str1[i] = (unsigned char) str[i]; - } - jstring result = env->NewString(str1, len); - free(str1); - return result; -} +const char* hello = "Hello JNI"; extern "C" JNIEXPORT jstring JNICALL Java_bazel_Jni_hello(JNIEnv *env, jclass clazz) { diff --git a/examples/android/java/bazel/jni_dep.cc b/examples/android/java/bazel/jni_dep.cc new file mode 100644 index 0000000000..bc6b605fe9 --- /dev/null +++ b/examples/android/java/bazel/jni_dep.cc @@ -0,0 +1,17 @@ +#include "examples/android/java/bazel/jni_dep.h" + +#include +#include + +jstring NewStringLatin1(JNIEnv *env, const char *str) { + int len = strlen(str); + jchar *str1; + str1 = reinterpret_cast(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; +} diff --git a/examples/android/java/bazel/jni_dep.h b/examples/android/java/bazel/jni_dep.h new file mode 100644 index 0000000000..05db52a487 --- /dev/null +++ b/examples/android/java/bazel/jni_dep.h @@ -0,0 +1,5 @@ +#pragma once + +#include + +jstring NewStringLatin1(JNIEnv *env, const char *str); -- cgit v1.2.3