Index: base/android/jni_android.cc |
diff --git a/base/android/jni_android.cc b/base/android/jni_android.cc |
index 1dc02afb3b0543fce35b14fcf1fb4401109a4db9..7f9d04b1b3bbd1f32a2d2363e0ffa240497434c5 100644 |
--- a/base/android/jni_android.cc |
+++ b/base/android/jni_android.cc |
@@ -4,6 +4,7 @@ |
#include "base/android/jni_android.h" |
+#include "base/android/scoped_java_ref.h" |
#include "base/logging.h" |
namespace { |
@@ -46,6 +47,14 @@ jobject GetApplicationContext() { |
return g_application_context; |
} |
+jmethodID GetMethodIDFromClassName(JNIEnv* env, |
+ const char* const class_name, |
+ const char* const method, |
+ const char* const jni_signature) { |
+ ScopedJavaLocalRef<jclass> clazz(env, env->FindClass(class_name)); |
+ return GetMethodID(env, clazz.obj(), method, jni_signature); |
+} |
+ |
jmethodID GetMethodID(JNIEnv* env, |
jclass clazz, |
const char* const method, |
@@ -66,6 +75,16 @@ jmethodID GetStaticMethodID(JNIEnv* env, |
return id; |
} |
+jfieldID GetFieldID(JNIEnv* env, |
+ jclass clazz, |
+ const char* const field, |
+ const char* const jni_signature) { |
+ jfieldID id = env->GetFieldID(clazz, field, jni_signature); |
+ DCHECK(id) << field; |
+ CheckException(env); |
+ return id; |
+} |
+ |
bool CheckException(JNIEnv* env) { |
if (env->ExceptionCheck() == JNI_FALSE) |
return false; |