public static IntPtr GetFieldID(IntPtr jclass, string fieldName, string signature, bool isStatic)
{
IntPtr intPtr = IntPtr.Zero;
IntPtr result;
try
{
intPtr = AndroidReflection.GetFieldMember(jclass, fieldName, signature, isStatic);
result = AndroidJNISafe.FromReflectedField(intPtr);
}
catch (Exception ex)
{
IntPtr intPtr2 = (!isStatic) ? AndroidJNISafe.GetFieldID(jclass, fieldName, signature) : AndroidJNISafe.GetStaticFieldID(jclass, fieldName, signature);
if (!(intPtr2 != IntPtr.Zero))
{
throw ex;
}
result = intPtr2;
}
finally
{
AndroidJNISafe.DeleteLocalRef(intPtr);
}
return(result);
}