我收到以下錯誤應用.....點擊按鈕崩潰,unhandeled例外
tacktrace:
在(包裝託管到本機)MonoTouch.UIKit.UIApplication.UIApplicationMain( int,string [],intptr,intptr) at MonoTouch.UIKit.UIApplication.Main(string [],string,string)/Developer/MonoTouch/Source/monotouch/src/UIKit/UIApplication.cs:38中的[0x0004c] (包裝器運行時調用)處的F2S.UI.Application.Main(字符串[])[0x00000]處的 /Users/ravichandra/Desktop/19-10-2012/F2S/F2S.UI/Main.cs:。 .runtime_invoke_void_object(對象,IntPtr的,IntPtr的,IntPtr的)
本地堆棧跟蹤:
0 navigation 0x00090dfc mono_handle_native_sigsegv + 284
1 navigation 0x00005c28 mono_sigsegv_signal_handler + 248
2 libsystem_c.dylib 0x9ca8259b _sigtramp + 43
3 ??? 0xffffffff 0x0 + 4294967295
4 UIKit 0x0223555a -[UIApplication sendAction:toTarget:fromSender:forEvent:] + 61
5 UIKit 0x022dab76 -[UIControl sendAction:to:forEvent:] + 66
6 UIKit 0x022db03f -[UIControl(Internal) _sendActionsForEvents:withEvent:] + 503
7 UIKit 0x022da2fe -[UIControl touchesEnded:withEvent:] + 549
8 UIKit 0x0225aa30 -[UIWindow _sendTouchesForEvent:] + 513
9 UIKit 0x0225ac56 -[UIWindow sendEvent:] + 273
10 UIKit 0x02241384 -[UIApplication sendEvent:] + 464
11 UIKit 0x02234aa9 _UIApplicationHandleEvent + 8196
12 GraphicsServices 0x047f6fa9 PurpleEventCallback + 1274
13 CoreFoundation 0x0119c1c5 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 53
14 CoreFoundation 0x01101022 __CFRunLoopDoSource1 + 146
15 CoreFoundation 0x010ff90a __CFRunLoopRun + 2218
16 CoreFoundation 0x010fedb4 CFRunLoopRunSpecific + 212
17 CoreFoundation 0x010feccb CFRunLoopRunInMode + 123
18 GraphicsServices 0x047f5879 GSEventRunModal + 207
19 GraphicsServices 0x047f593e GSEventRun + 114
20 UIKit 0x02232a9b UIApplicationMain + 1175
21 ??? 0x0d90a384 0x0 + 227582852
22 ??? 0x0d909180 0x0 + 227578240
23 ??? 0x0d9089a0 0x0 + 227576224
24 ??? 0x0d908a2f 0x0 + 227576367
25 navigation 0x00009fe2 mono_jit_runtime_invoke + 722
26 navigation 0x0016b87e mono_runtime_invoke + 126
27 navigation 0x0016fa04 mono_runtime_exec_main + 420
28 navigation 0x00174df5 mono_runtime_run_main + 725
29 navigation 0x000671e5 mono_jit_exec + 149
30 navigation 0x00203e41 main + 2209
31 navigation 0x00002fe5 start + 53
32 ??? 0x00000005 0x0 + 5
==================================== ============================= 執行本機代碼時得到了一個SIGSEGV。這通常表示 單聲道運行時或其中一個本機庫中的致命錯誤。
============================================== ===================
請人幫我
這裏是我的代碼
btnMylocation.Clicked += (sender, e) =>
{
imgbg.Hidden=false;
lbltime.Hidden=false;
btnup.Hidden=false;
btndown.Hidden=false;
imghazard.Hidden=false;
lblfeets.Hidden=false;
try
{
if(!Reachability.IsHostReachable ("www.google.com"))
{
alertview.NetworkFail();
}
else
{
this.mysegments.SelectedSegment = 0;
mapView.RemoveAnnotations (mapView.Annotations);
var locationservice = new LocationService();
var currentLocation = locationservice.GetCurrentLocation();
var visregion = BuildVisibleRegion (currentLocation);
mapView.SetRegion (visregion, true);
targetimage.Hidden = true;
locations = LocationManager.Locations();
List<double> distlist=new List<double>();
foreach(LocationModel d in locations)
{
var dist=distance (currentLocation.Latitude,currentLocation.Longitude,Convert.ToDouble (d.latitude),Convert.ToDouble (d.longitude));
distlist.Add (dist);
}
if(distlist.Count!=0)
{
distlist.Sort();
double min= distlist[0];
foreach (LocationModel f in locations)
{
string feets = (min*3280).ToString();
var dist=distance (currentLocation.Latitude,currentLocation.Longitude,Convert.ToDouble (f.latitude),Convert.ToDouble (f.longitude));
if(min == dist)
{
string lat = f.latitude;
string lon = f.longitude;
NSUserDefaults.StandardUserDefaults.SetString (f.hazardid,"hazardid");
this.View.AddSubview (imgbg);
this.View.AddSubview (imghazard);
this.View.AddSubview (lblfeets);
this.View.AddSubview (btnup);
this.View.AddSubview (btndown);
this.View.AddSubview (lbltime);
if (f.hazardtype == 1)
{
pins.Clear();
pins.Add (new PoliceAnnotation (new CLLocationCoordinate2D (Convert.ToDouble (lat), Convert.ToDouble (lon)), "Click here to Report",""));
mapView.AddAnnotationObject (pins [0]);
mapView.AddAnnotation (mapAnnotations [(int)Anotationindex.police]);
lblfeets.Text=feets + " fts";
lbltime.Text=f.ReportDate + " Ago";
imghazard.Image=UIImage.FromFile ("Images/police-cop-mark.png");
}
else if (f.hazardtype == 2)
{
duipins.Clear();
duipins.Add (new DuiAnnotation (new CLLocationCoordinate2D (Convert.ToDouble (lat), Convert.ToDouble (lon)), "Click here to Report",""));
mapView.AddAnnotationObject (duipins [0]);
mapView.AddAnnotation (mapAnnotations [(int)Anotationindex.dui]);
lblfeets.Text=feets + " fts";
lbltime.Text=f.ReportDate + " Ago";
imghazard.Image=UIImage.FromFile ("Images/dui-stop-mark.png");
}
else if(f.hazardtype==3)
{
campins.Clear();
campins.Add (new SpeedcamAnnotation (new CLLocationCoordinate2D (Convert.ToDouble (lat), Convert.ToDouble (lon)), "",""));
mapView.AddAnnotationObject (campins [0]);
mapView.AddAnnotation (mapAnnotations [(int)Anotationindex.cam]);
lblfeets.Text=feets + " fts";
lbltime.Text=f.ReportDate + " Ago";
imghazard.Image=UIImage.FromFile ("Images/speed-camera-mark.png");
}
}
}
btnup.TouchUpInside += (sender1, e1) =>
{
NSUserDefaults.StandardUserDefaults.SetString("1","Status");
NSUserDefaults.StandardUserDefaults.Init();
Response = LocationManager.ConfirmLocation();
if(Response.Status == "1" || Response.Status == "12")
{
UIAlertView alert1 = new UIAlertView ("Success","",null,"Ok");
alert1.Show();
}
else
{
}
};
btndown.TouchUpInside += (sender1, e1) =>
{
NSUserDefaults.StandardUserDefaults.SetString("0","Status");
NSUserDefaults.StandardUserDefaults.Init();
Response = LocationManager.ConfirmLocation();
if(Response.Status == "1" || Response.Status == "12")
{
UIAlertView alert1 = new UIAlertView ("Success","",null,"Ok");
alert1.Show();
}
else
{
}
};
}
}
}
catch(Exception ex)
{
if(ex.Message == "Network Fail")
alertview.NetworkFail();
else
alertview.ProcessFailed();
}
};
點擊第一次btnMylocation顯示彈出與兩個按鈕,並點擊兩個按鈕工作正常,但是當我試圖再次點擊btnMylocation它打開彈出窗口,但點擊兩個按鈕中的任何一個btnup和btndown崩潰的應用程序.......任何想法請.. ..
它看起來像GC釋放了按鈕,因爲沒有人保留對它的引用。你可以顯示你的代碼,所以我們可以肯定嗎? –