2012-04-03 2 views
0

Ich habe eine Android-Anwendung, die verbindet und kommuniziert mit einem Server. Ursprünglich wurde die App mit minSdk Version 8 (Android 2.2) gebaut und es funktionierte perfekt. Ich habe ein Gerät mit 4.03, also habe ich beschlossen, eine minSdk 15-Version zu erstellen. Dies führte dazu, dass meine App jedes Mal abstürzte, wenn ich versuchte, eine Verbindung zum Server herzustellen.Ändern der Android SDK-Version verursacht Abstürze

Ich entfernte die App so weit wie möglich, um die Ursache des Problems zu finden. Ich habe das Problem auf meine Funktion reduziert, die meinen Socket initialisiert. Wenn diese Funktion versucht, die Anwendung auszuführen, stürzt die Anwendung ab.

Wenn ich die minSdk-Version auf 8 ändere, funktioniert es perfekt. Aber es funktioniert bei keiner anderen Version, die ich ausprobiert habe (10,14,15). Ich weiß nicht, was sich in den Versionen geändert hat, aber es scheint merkwürdig, dass dies nur bei misSdk 8 funktionieren würde. Was könnte das verursachen oder was könnte geändert werden?

Hier ist ein Teil des Codes:

// Function that seems to cause problems 
public void openConnection(){ 
    try{ 
     s = new Socket(InetAddress.getByName("192.168.1.84"),1500); 
    }catch(IOException e){ 
e.printStackTrace(); 
    } 
} 
// Button handler 
public void myClickHandler(View view){ 
    switch(view.getId()){ 
    case R.id.ConnectButton: 
     this.openConnection(); 
    } 
} 
+0

wo ist logcat stacktrace? –

Antwort

1

ich sicher nicht (Posten Sie Ihre logcat Ausgabe!) Sagen, aber meine beste Vermutung ist, dass Sie die Verbindung auf dem UI-Thread zu machen versuchen, und ICS stürzt Ihre App ab (wie es sollte, da der Versuch, eine Verbindung zu einem Webserver auf dem UI-Thread herzustellen, fast sicher eine Garantie dafür ist, dass Ihre App nicht richtig funktioniert). Stellen Sie sicher, dass Sie die Verbindung mit einem AsyncTask oder einem Thread herstellen. Ich habe viele Entwickler mit ähnlichen Problemen gesehen, die normalerweise mit diesem Problem zu tun haben.

+0

Das ist genau das, was ich brauchte. Ich schätze Ihre schnelle und hilfreiche Antwort. – davemeyer