视图.SlidingMenuSharp在ArgumentException上测量失败



我使用SlidingMenuSharp (https://github.com/Cheesebaron/SlidingMenuSharp)。偶尔我的应用会因为以下错误而崩溃。我无法确定原因——菜单不需要被操纵,甚至不需要在出错时打开。我也没有这个错误的调用堆栈,所以我不知道"谁"调用这个,什么时候。

05-22 16:30:30.340 I/MonoDroid(30088): UNHANDLED EXCEPTION: System.ArgumentException: 'jobject' must not be IntPtr.Zero. 05-22 16:30:30.340 I/MonoDroid(30088): Parameter name: jobject 
05-22 16:30:30.340 I/MonoDroid(30088): at Android.Runtime.JNIEnv.CallVoidMethod (intptr,intptr,Android.Runtime.JValue[]) [0x00010] in /Users/builder/data/lanes/monodroid-mlion-monodroid-4.12-series/7f0e3d3c/source/monodroid/src/Mono.Android/src/Runtime/JNIEnv.g.cs:499 
05-22 16:30:30.340 I/MonoDroid(30088): at Android.Views.View.Measure (int,int) [0x0002d] in /Users/builder/data/lanes/monodroid-mlion-monodroid-4.12-series/7f0e3d3c/source/monodroid/src/Mono.Android/platforms/android-14/src/generated/Android.Views.View.cs:10375 
05-22 16:30:30.340 I/MonoDroid(30088): at SlidingMenuSharp.CustomViewAbove.OnMeasure (int,int) [0x0002c] in d:DevelspeedcamsprototypeApplicationAndroidSlidingMenuSharpCustomViewAbove.cs:339 
05-22 16:30:30.340 I/MonoDroid(30088): at Android.Views.View.n_OnMeasure_II (intptr,intptr,int,int) [0x00009] in /Users/builder/data/lanes/monodroid-mlion-monodroid-4.12-series/7f0e3d3c/source/monodroid/src/Mono.Android/platforms/android-14/src/generated/Android.Views.View.cs:11378 
05-22 16:30:30.340 I/MonoDroid(30088): at (wrapper dynamic-method) object.bd42ef49-55d3-4861-a730-0897a6e73e12 (intptr,intptr,int,int) <IL 0x0001d, 0x0004b>

知道是怎么回事吗?谢谢。

好的,经过长时间的反复试验,我找到了原因。如果你在使用SlidingMenuSharp的活动中使用布局:

using (var mainlayout = FindViewById<RelativeLayout>(Resource.Id.mainLayout))
{
    mainLayout.SetBackgroundResource(Resource.Drawable.bg_blue);
}

你会得到问题中的异常。然而,如果你不使用using(我猜在GC处理引用之前,给一些附加的东西留下更多的时间来反应?),一切都很好。

var mainlayout = FindViewById<RelativeLayout>(Resource.Id.mainLayout);
mainLayout.SetBackgroundResource(Resource.Drawable.bg_blue);

也许这更像是一个解决方案-我猜他们应该仍然在SlidingMenuSharp中以某种方式修复这个问题,但它现在工作

最新更新