Błąd aplikacji po instalacji Android

0

Zaprogramowałem aplikacje w Xamarinie na androida, poprawnie działała w visualce. Zainstalowałem program na komórkę. Dodałem permissiony (wszystkie, tak na wszelki wypadek), wersja androida to 2.3.5, a ustawiłem od 2.3 w xamarinie (najniższa). Instalacja przebiegła pomyślnie. Jednak w chwili uruchomienia pojawia się Error:

Przepraszamy !
Aplikacja Android4programm (proces [nazwaAplikacji] )została niespodziewanie zatrzymana. Spróbuj ponownie.
Button -> wymuś zamknięcie.

Forum mówiło o:

  • reinstalacji apki
  • czyszczenie cash

Nic to nie dało.
Aplikacja ma na celu łączenie się z windowsem, wysyłania mu wiadomości.
Kod MainActivity:

using System;
using Android.App;
using Android.Content;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.OS;
using System.Net.Sockets;
using System.Net;
using System.IO;
using System.ComponentModel;
using System.Threading;
using System.Text;

namespace Android4programm
{
    [Activity(Label = "Controller", MainLauncher = true, Icon = "@drawable/icon")]
    public class MainActivity : Activity
    {
        public EditText editTextMessage;
        public Button buttonConnect;
        public Button buttonDisconnect;
        public Button buttonSend;
        TcpClient client;

        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);
            SetContentView(Resource.Layout.Main);
            buttonConnect = FindViewById<Button>(Resource.Id.button_Connect);
            buttonDisconnect = FindViewById<Button>(Resource.Id.button_Disconnect);
            buttonSend = FindViewById<Button>(Resource.Id.button_Send);
            //editTextMessage = FindViewById<EditText>(Resource.Id.edittext_message);
            editTextMessage = FindViewById<EditText>(Resource.Id.edittext_Message);

            buttonConnect.Click += Connect;
            buttonDisconnect.Click += Disconnect;
            buttonSend.Click += Send;
            client = new TcpClient();

            buttonDisconnect.Enabled = false;
            buttonSend.Enabled = false;
            editTextMessage.Enabled = false;

        }

        private void Connect(object sender, EventArgs e)
        {
            IPEndPoint IP_End = new IPEndPoint(IPAddress.Parse("192.168.1.1"), 12345);
            client.Connect(IP_End);
            buttonConnect.Text = "Connected";
            buttonConnect.Enabled = false;
            buttonDisconnect.Enabled = true;
            buttonSend.Enabled = true;
            editTextMessage.Enabled = true;
        }
        private void Disconnect(object sender, EventArgs e)
        {
            string msg = "CancelConnection";
            byte[] buff = Encoding.ASCII.GetBytes(msg);
            client.GetStream().Write(buff, 0, buff.Length);
            client.Close();
        }
        private void Send(object sender, EventArgs e)
        {
            string msg;
            if (editTextMessage.Text!=null)
            {
                msg = editTextMessage.Text;
            }
            else
            {
                msg = "Deafult message";
            }

            byte[] buff = Encoding.ASCII.GetBytes(msg);
            client.GetStream().Write(buff, 0, buff.Length);
        }
    }
}

Bardzo proszę o pomoc
Serdecznie pozdrawiam

0

Logi z logcat?

0

Nigdy z tego nie korzystałem, jak to zrobić? (oczywiście sam zaraz na to popatrzę Internet duży, ale sprytna wskazówka załatwiła by sprawę w 5 min).

Xamarin wydaje się naprawdę fajny, ale jak zwykle mamy w takich sytuacjach do czynienia z "the law of leaky abstractions" i jednak okazuje się, że do pisania aplikacji na Androida trzeba poznać mechanizmy specyficzne Androidowi ;).

Najpierw sprawdź w IDE w którym piszesz i debugujesz aplikacje z tym Xamarinem, może tam będzie.

Jeżeli masz Android Studio pod ręką to najprościej będzie odpalić Android Monitor i przeczytać logi z zakładki logcata.
W ostateczności możesz ratować się adb shell i po prostu poleceniem logcat.

0

Visual 2015 darmowa wersja, skompilowałem ten default plik, tryb release -> publish app -> wrzuciłem odpaliłem to samo, wywala. Kod zatem raczej nie jest zły bo defaultowa apka ( tam jest jakiś button co klika i się inkrementuje napis) działa.

0

Logi 1 - 4
Android Device Logging, mam nadzieje ze to jest to samo.

Dla mnie jest bardzo dziwne ze nie moge otworzyc defaultowej aplikacji na telefonie Xamarina. Brak uprawnien? licencji?

0

Hm, ale tutaj widzę, że chyba wszystko uruchomiło się w porządku?

0

Na Xamarinie (na windowskie emulatorze) wszystko działa, łącze się i wysyła : ))
Stack coś mówi (pusciłem wątek tam) że może chodzi o Manifest.xml (daje obrazek manifestu)

Nie wiem co z nim zrobić jeszcze?

http:stackoverflow.com/questions/3[...]ing-android/39195962#39195962 <-- stack

0

Pokaż logi z urządzenia gdy aplikacja się wywala :>.

0

Android application is debugging.
The application could not be started. Ensure that the application has been installed to the target device and has a launchable activity (MainLauncher = true).

Additionally, check Build->Configuration Manager ( załączam screen) to ensure this project is set to Deploy for this configuration.

0
08-29 00:06:00.479 E/AndroidRuntime( 3252): FATAL EXCEPTION: main
08-29 00:06:00.479 E/AndroidRuntime( 3252): java.lang.UnsatisfiedLinkError: Couldn't load monodroid: findLibrary returned null

Wydaje mi się, że to nasz winowajca.

Nie ma tam w packagingu opcji dołączenia samego mono/xamarina?

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