Index: base/android/jni_android.cc |
diff --git a/base/android/jni_android.cc b/base/android/jni_android.cc |
index 1dc02afb3b0543fce35b14fcf1fb4401109a4db9..c59b981a7710ef56f12994353d9df459fc59a882 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 { |
@@ -17,7 +18,6 @@ namespace android { |
JNIEnv* AttachCurrentThread() { |
if (!g_jvm) |
return NULL; |
- |
JNIEnv* env = NULL; |
jint ret = g_jvm->AttachCurrentThread(&env, NULL); |
DCHECK_EQ(ret, JNI_OK); |
@@ -46,6 +46,12 @@ jobject GetApplicationContext() { |
return g_application_context; |
} |
+MethodID::MethodID(JNIEnv* env, const char* class_name, const char* method, |
+ const char* jni_signature) { |
+ ScopedJavaLocalRef<jclass> clazz(env, env->FindClass(class_name)); |
+ id_ = GetMethodID(env, clazz.obj(), method, jni_signature); |
+} |
+ |
jmethodID GetMethodID(JNIEnv* env, |
jclass clazz, |
const char* const method, |
@@ -66,6 +72,16 @@ jmethodID GetStaticMethodID(JNIEnv* env, |
return id; |
} |
+jfieldID GetFieldID(JNIEnv* env, |
+ jclass clazz, |
+ const char* field, |
+ const char* 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; |