Aplikacja dobrze działa w emulatorze, a nie działa w telefonie

0

Mam aplikację mobilną (C# / Xamarin) dla Androida i w emulatorze działa dobrze, natomiast w telefonie (wersja signed.apk) "wykrzacza się" z tekstem "przepraszamy aplikacja ...... przestała działać).... Co może być powodem?

0

Problemy z pamięcią lub brak jakiś bibliotek, z których korzysta Twoja aplikacja. Ewentualnie niepoprawne wersje tych bibliotek.

0

Powodem jest brak szklanej kuli, która pozwoliła by nam zajrzeć co właściwie zrobiłeś.
Musisz ściągnąć crash loga i go zdekodować, on ci wskaże miejsce problemu.
Może ktoś od Androida zapoda linka jak to zrobić.

0

W katalogu Release mam sporo plików różnego typu w tym DLL.

Ja wgrałem jedynie plik app7-signed.apk sądząc że to wystarczy.

Poprzednią aplikację wgrałem w ten sposób (tzn. tylko APK wgrałem do telefonu) i działa bez problemowo.

0

W katalogach bin / Release oraz bin / Debug mam po kilkanaście plików (.mdb i trochę .dll) łacznie mają ok. 10 MB, przy czym pojedyncza appka .apk ma około 5 MB.

W pierwszym "projekcie" (taki heloł łerld) wystarczyło wgrać do telefonu jeden plik app1-signed.apk i wszystko działa elegancko. Dlatego teraz postąpiłem podobnie.

O crash logach poczytam, poszukam informacji...

0

Znalazłem kilka takich appek, ale niestety wymagają pozwoleń, a więc chyba też konta root (?). Mam Andka Jelly Bean który nie pozwala im czytać logów.

0

To ponownie ja ;) (ksywka na forum zmienia się sama)

Chyba z logami sobie na komórce nie poradze. Bo trzeba dać "grant permission"....

Oto mój kod aplikacji:

 

        protected override void OnCreate (Bundle bundle)
		{
			base.OnCreate (bundle);
            SetContentView (Resource.Layout.Main);

	    Button button = FindViewById<Button> (Resource.Id.myButton);
            TextView tvp = FindViewById<TextView>(Resource.Id.textView1);
            TextView tvd = FindViewById<TextView>(Resource.Id.textView2);

            button.Click += delegate 
            {
                var html = new HtmlDocument();

                try
                {
                    html.LoadHtml(new WebClient().DownloadString(URL));
                }

                catch (Exception e)
                {
                    Toast.MakeText(this, "Problem z siecia!.", ToastLength.Long).Show();
                }

                if (html == null)
                {
                    Toast.MakeText(this, "Problem z siecia!.", ToastLength.Long).Show();
                    return;
                }

                var link = html.DocumentNode
                    .Descendants("a")
                    .First(x => x.Attributes["class"] != null
                             && x.Attributes["class"].Value == "offerrentos");

                if (link != null)
				..... itd. itd. ............
				Wyciagam z kodu HTML interesujace rzeczy..
				............................
				
				}
			}
		}	
	}	

Program w emulatorze działa bez problemu, w telefonie uruchamia się i mówi "żegnaj" jak tylko nacisnę myButton.

W czym może być problem?

0

Weź ten kod w try{} catch(){} i w catchu wypisz toastem błąd i będziesz wiedział o co chodzi

0
DDRako napisał(a):

Weź ten kod w try{} catch(){} i w catchu wypisz toastem błąd i będziesz wiedział o co chodzi

No to chyba najlepszy pomysł, ja stosowałem Console.WriteLine - ale to działa oczywiście tylko w VS,...

DZIEKI!

1 użytkowników online, w tym zalogowanych: 0, gości: 1