Wątek przeniesiony 2020-03-12 11:04 z C# i .NET przez cerrato.

Aplikacja na androida 6.0

0

Che zrobić aplikację na androida 6.0. Podczas tworzenia projetku w VS2019 domyślnie wybierana jest minimalna wersja androida 5.0 a ta preferowana 9.0. Na telefonie z androidem 9.0 aplikacja działa bez problemu, natomiast na androidzie 6.0 uruchomi się i "wisi". Po około pół minuty jest komunikat że aplikacja nie odpowiada i koniec. Jeżeli zmniejsze ta preferowana wersje do 8.1 to wszystko się kompiluje, natomiast gdy zmniejszę naprzykład do 8.0 to jest error że minimalna wersja to 8.1.

Dlaczego aplikacja nie działa mimo że minimalna wersja jest 5.0?

0

A jak na emulatorze z odpowiednią wersją systemu?

0

Emulator u mnie działa tragicznie nie mogę go praktycznie uruchomić. uruchamia się 5-10 min i strasznie laguje. Wszystko muszę testować niestety na telefonie co jest kłopotliwe ale trwa dużo szybciej niż ten nieszczęsny emulator :/

1

Musisz złapać, na czym ci się tnie ta aplikacja. Możesz spróbować przy pomocy loga to zrobić: https://developer.android.com/studio/debug/am-logcat

0

Raczej w aplikacji nie ma co sprawdzać bo aplikacja zawiera tylko jeden przycisk i dopiero po kliknięciu wykonuje się kilka operacji. A aplikacja wisi od samego uruchomienia, nie da się nawet kliknac przycisku

0

Aplikacja wymaga jakichś dostępów? Możesz też sprawdzić crash loga: https://stackoverflow.com/questions/12519077/where-to-find-android-crash-history

0

Jedynie do smsów ale to dopiero po kliknięciu przycisku. Nawet zaznaczyłem już wszystkie możliwe uprawnienia w VS i telefonie i cały czas wisi.

0

Aplikacja powinna działać. Zobacz logi (logcat), ale jeśli to tylko hello world, który nic nie robi, to może być bug w Xamarinie, na który nic nie poradzisz. Upewnij się, że masz najnowszą wersję Xamarina i wszystkich wtyczek.

Xamarin to nie jest stabilny produkt i warto mieć to na uwadze. Ale bez logów to tylko wróżenie z fusów, pokaż logi z tego zwisu, to może coś się wyjaśni.

0

Nie jestem chyba w stanie pobrać żadnych logów, w telefonie nic nie ma, a nawet nie mogę stworzyć emulatora z 6.0. Cały czas się kręci "Creating..." i tak 2h ponad. Dlaczego w moim przypadku ten emulator tak tragicznie działa, czy to tak u wszystkich? Sa jakies inne emulatory nie od microsoftu?

0

Dlaczego w moim przypadku ten emulator tak tragicznie działa, czy to tak u wszystkich? Sa jakies inne emulatory nie od microsoftu?

Emulatory, które instalujesz z Xamarinem to normalne emulatory Androida od Google, a nie jakieś od Microsoftu. Którego używasz (Intel Atom, x86-64, Google Play aktywne?)? Masz sprzętową wirtualizację? Masz Windows 10 z Hyper-V aktywnym? Masz doinstalowany HAXM albo aktywne Windows Virtualization Platform?

Emulator działa dość słabo, ale nie jest aż tak tragicznie jak piszesz.

0

Mam sprzętowa wirtualizacje, uruchomiłem jeszcze Windows Virtualization Platform. Hyper-V nie mogę zainstalować do mam Win Home. A co do wersji to znalazłem coś takiego w logach kompilacji Component Intel x86 Atom System Image.

Uruchomiłem aplikacje na tym domyślnym emulatorze 9.0 i wyskoczył error a w logach (logcat) nic się nie pojawiło mimo że na telefonie z 9.0 aplikacja działa prawidłowo

Edit: Aplikacja działa na 7.1

1

Wydaje mi się (wydaje, nie mam jak sprawdzić), że Windows Virtualization Platform nie działa bez Hyper-V, stąd twój emulator nie jest wspomagany sprzętowo i dlatego ma żałosną wydajność.

Sprawdź uruchamiając go ręcznie:

"c:\Program Files (x86)\Android\android-sdk\emulator\emulator.exe" -avd <nazwa avd> -partition-size 512 -feature WindowsHypervisorPlatform

Gdzie zamiast <nazwa avd> musisz podać nazwę swojego AVD, możesz je uzyskać komendą "c:\Program Files (x86)\Android\android-sdk\emulator\emulator.exe" -list-avds.

Jeżeli w logach dostaniesz coś w stylu:

Windows Hypervisor Platform accelerator is operational

To dobrze ;) Jeśli nie - nie masz Hyper-V, więc możesz śmiało doinstalować HAXM (jeśli masz procesor Intela). Oczywiście nie rozwiązuje to Twojego problemu, ale przynajmniej może uda się wyśledzić jak już poprawnie uruchomisz emulator.

0

Pojawiło się "Windows Hypervisor Platform accelerator is operational" oraz emulator uruchomił się w 2 sek i działa bardzo płynnie. Czy jest możliwość aby ta komende zaimplementować do VS2019?

1

Po co? Jak emulator jest uruchomiony, to VisualStudio powinien już go widzieć

0

Dostałem taki error przy próbie uruchomienia aplikacji na emulatorze 9.0 x86

Error ADB0020: Android ABI mismatch. You are deploying an app supporting 'armeabi-v7a;arm64-v8a' ABIs to an incompatible device of ABI 'x86'. You should either create an emulator matching one of your app's ABIs or add 'x86' to the list of ABIs your app builds for.

W zakładce build mam ustawiony dowolny procesor.

0

Nie w tym miejscu.

screenshot-20200313104638.png

0

Ja już nie wiem o co chodzi... W emulatorze działa bez problemu zarówno na 9.0 jak i 6.0. Na Alcatelu Pixi 4 z androidem 6.0 nie działa, a na dwóch telefonach huawei P8 lite z androidem 6.0 na jednym nie działa a na drugim działa bez problemu...

0

Udało mi się dojść do tego ze aplikacja nie działa na podanych telefonach tylko jeśli maja uruchomione Wi-Fi oraz jeśli w aplikaji jest ta linia :

Socket s = myList.AcceptSocket();

Jest to bardzo dziwne ponieważ ta linia kodu jest wykonywana dopiero po kliknięciu przycisku a aplikacja wisi już przed klikaniem czegokolwiek. Jeśli WiFi jest wyłaczone to aplikacja nie wisi.

0

No już tyle razy ci było mówione, żebyś zobaczył logcat ze zwisu. Ty nie chcesz albo nie umiesz, więc nie ruszysz z miejsca. Logi są generowane cały czas, jeśli przerasta cię korzystanie z logcata, to w ogóle daruj sobie programowanie na Androida, bo nic nie osiągniesz.

Biorąc pod uwagę tylko to, co raczyłeś napisać do tej pory, mogę jedynie doradzić porzucenie Xamarina i pisanie natywnie w Kotlinie/Javie, ewentualnie we Flutterze i problem zniknie. Czy możesz coś zrobić w twojej obecnej sytuacji, tego ci nikt nie powie, bo nie raczyłeś pobrać logów urządzenia. Czego więc tu oczekujesz?

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