Debugging a running Android application using Xamarin for Visual Studio

When the application starts, I download the list from the local storage, if it is disconnected, or if there is a network connection, it will download this list from the web service (and then write to the local storage.

My problem is that in order to debug this, I have to completely close the application and then restart it (therefore terminating the visual studio debugging session)

The application will load, but when I call a specific method, as soon as the application starts, it will work. I can’t understand where his fall. and since the debugging session is no longer tied, this also does not help.

It’s strange. I even tried wrapping the method call and the contents of the method in a catch try block (trying to figure out what was wrong) and it still crashes.

Here is a snippet.

class MyCouncilsFragment:Fragment { public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { //my councils base.OnCreateView(inflater, container, savedInstanceState); var view = this.View ?? inflater.Inflate(Resource.Layout.mycouncils, container, false); string councils = GoIO.LoadText(CC.FILE_MYCOUNCILS) ?? ""; List<Council> mycouncils = Shared.Serialization.Deserialize<List<Shared.Council>>(councils) ?? new List<Council>(); MyGlobals.myCouncilsList = mycouncils; Spinner spncouncils = view.FindViewById<Spinner>(Resource.Id.spnCouncils); if(mycouncils.Count > 0) { spncouncils.Enabled = true; CouncilSpinnerAdapter adapter = new CouncilSpinnerAdapter(Main_Act.context, Resource.Layout.spn_row_text, MyGlobals.myCouncilsList.ToArray()); spncouncils.Adapter = adapter; Button btnSelect = view.FindViewById<Button>(Resource.Id.btnSelect); btnSelect.Enabled = true; btnSelect.Click += delegate { Council sessionCouncil = MyGlobals.myCouncilsList[spncouncils.SelectedItemPosition]; //sessionCouncil is not the problem, i've tested that try { Main_Act.loadLists(); //the issue is when this method is called. (however the call works fine when calling it from a different fragment thats basically in the same state) } catch { } //List<Designer> x = Shared.WebServerHelper.WebCall<Designer>("https://" + MyGlobals.sessionCouncil.service_url + "/design/"); //MyGlobals.sessionColours = x[0]; //MyGlobals.hintText = MyGlobals.getSubtleColour(MyGlobals.getColor(MyGlobals.sessionColours.controlcolour), 20); //var intent = new Intent(this.Activity, typeof(MyDetails_Act)); //StartActivity(intent); }; } else { //List<Council> emptylist = new List<Council>(); //Council empty = new Council(); //empty.council_name = "no councils added"; //emptylist.Add(empty); //spncouncils.Enabled = false; //Button viewall = view.FindViewById<Button>(Resource.Id.btnSelect); //viewall.Visibility = ViewStates.Gone; //TextView nb = view.FindViewById<TextView>(Resource.Id.nb); //nb.Visibility = ViewStates.Visible; } return view; } 

And this is a method called

 public static void loadLists() { try { // // _| _|_| _|_| _|_|_| // // _| _| _| _| _| _| _| // // _| _| _| _|_|_|_| _| _| // // _| _| _| _| _| _| _| // // _|_|_|_| _|_| _| _| _|_|_| if (MyGlobals.sessionCouncil != null) { var connectivityManager = (ConnectivityManager)context.GetSystemService(ConnectivityService); var activeConnection = connectivityManager.ActiveNetworkInfo; if (activeConnection != null && activeConnection.IsConnected) { loadConsentsFromWeb(); Console.WriteLine("getting inspectiontypes online"); loadInspectionTypesOnline(); } else { try { loadConsentsFromFile(); loadInspectionTypesOffline(); } catch { Toast.MakeText(context, "Unable to load consents from file", ToastLength.Long).Show(); } } try { loadBookings(); } catch (Exception ex) { Console.WriteLine(ex.ToString()); } } else { //inspection types failed to load from file or from web. propmt user to reaload app? or something? Toast.MakeText(context, "Definition Elements failed to load, please restart the app", ToastLength.Short).Show(); System.Environment.Exit(0); } } catch { } } 

Note: I tried putting the whole method in a try block, and the application still crashes

+5
source share
1 answer

Try running adb logcat from the command line and search for a fatal exception when the application adb logcat . I don’t have enough points for comment, so I use the answer instead. Sorry =)

+1
source

Source: https://habr.com/ru/post/1211895/


All Articles