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