2017-05-21 1 views
0

Uhr beginnen eine Android-App soo, sobald ich einen ThreadXamarin android app stürzt auf Thread

Thread server = new Thread(new ThreadStart(serverHandle)); 
    server.Start(); 

die App laufen machen Abstürze ohne Fehlermeldungen und es geschieht nur auf Release-Modus, auf alles Debugging scheint sein ok

es funktioniert nur, wenn serverhandle leer ist, aber wenn irgendetwas im Inneren wie diese

ist
private void serverHandle() 
    { 

    AlertDialog.Builder alert = new AlertDialog.Builder(this); 
     alert.SetMessage("test"); 
     alert.Show(); 
    } 

hält es jede Hilfe arbeiten, warum ist das?

+0

Ich habe ein leeres Projekt mit den Codes, erstellt android-Paket und installiert es auf meinem Android-Gerät und laufen. Es gibt keinen Schwarm oder Fehler. Bitte stellen Sie sicher, dass Sie die App über die Schritte [Android-Anwendung signieren] (https://developer.xamarin.com/guides/android/deployment,_testing,_and_metrics/publishing_an_application/part_2_-_signing_the_android_application_package/) von der Seite heruntergeladen haben. –

+0

der Codierer läuft solange serverhandle leer ist, wenn ich irgendetwas in dieser wie private void serverhandle put() { AlertDialog.Builder aler = new AlertDialog.Builder (this); aler.SetMessage ("Test"); aler.Show(); } es funktioniert einfach nicht mehr – amineNoobDeveloper

+0

Könnten Sie bitte die Codes von 'Serverhandle' posten, oder ist es nur eine leere Funktion? –

Antwort

0

AlertDialog kann nur im UI-Thread verwendet werden. Bitte beziehen Sie sich auf How to show alert dialog in a running thread?.

Also, wenn Sie die Codes arbeiten möchten, können Sie es wie folgt ändern:

Thread server = new Thread(new ThreadStart(()=> { 
      //run the AlertDialog in the UI Thread. 
      RunOnUiThread(() => { 
       AlertDialog.Builder alert = new AlertDialog.Builder(this); 
       alert.SetMessage("test"); 
       alert.Show(); 
      }); 
     })); 
server.Start(); 
+0

muss alles auf UI-Thread ausgeführt werden, wenn ich dies TcpListener Listener = neue TcpListener (IPAddress.Any, 1000); listener.Start(); es zerquetscht wieder – amineNoobDeveloper

+0

Ich glaube nicht, dass es der gleiche Grund wie 'AlertDialog' ist, der die APP zerquetscht. Bitte versuchen Sie, die Portnummer zu ändern. Port 1000 ist wahrscheinlich und leicht von anderen Anwendungen besessen. –

+0

verwendet alle Arten von Port-Nummern keiner von em arbeitete und im Debug-Modus funktioniert es gut weiß nicht warum – amineNoobDeveloper

Verwandte Themen