【发布时间】:2015-10-21 11:41:35
【问题描述】:
所以我正在编写一个Xamarin 应用程序并且我已经构建了一个CustomRenderer
现在我的方法:
horizontalScrollView.ScrollTo(this.Width, 0);
不断抛出异常:
System.ArgumentException:“jobject”不得为 IntPtr.Zero。 10-21 12:10:41.898 E/AndroidRuntime(15053):参数名称:jobject 10-21 12:10:41.898 E/AndroidRuntime(15053): 在 Android.Runtime.JNIEnv.CallIntMethod (intptr,intptr) [0x00010] 在 /Users/builder/data/lanes/2185/53fce373/source/monodroid/src /Mono.Android/src/Runtime/JNIEnv.g.cs:378 10-21 12:10:41.898 E/AndroidRuntime(15053): 在Android.Views.View.get_Width()
因此,查看异常并从我的断点中,我发现问题在于,当我将鼠标悬停在 this.Width 上时,我得到 'jobject' must not be IntPtr.Zero 而不是 integer,所以我尝试针对此进行防御性编码并执行以下操作:
if (this.Width != IntPtr.Zero)
{
horizontalScrollView.ScrollTo(this.Width, 0);
}
但这不会编译并给我错误:
运算符“!=”不能应用于“int”类型的操作数和 'IntPtr'
所以我的问题是。有没有办法检查value type 是否等于IntPtr.Zero?
【问题讨论】:
标签: c# android xamarin mono xamarin.forms