Aufbau zum Server schlägt fehl. (Socket)

  • 1 Antworten
  • Letztes Antwortdatum
S

StillLovingYou

Neues Mitglied
0
Hi@all,
da ich schon überall verzweifelt gesucht aber keine wirkliche Lösung für mein Problem gefunden habe, Poste ich es einfach mal hier ins Forum, in der Hoffnung, das mir jemand helfen kann.

Ich habe eigentlich erstmal nur vor, eine Verbindung zu einem Server aufzunehmen was mit diesem Code m.M.n. funktionieren sollte, allerdings Stürtzt das Programm nach betätigen des Buttons sofort ab.

Hier mal der Java-Code:
Code:
package com.example.getit;

import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;

public class MainActivity extends Activity {
    public String ip = "IP des Servers"; /* Hier stünde jetzt natürlich meine richtige IP */
    
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
    }

    public void sendData(final View view){ /* Wird nach Drücken des Buttons ausgeführt */
        try {
            Socket mCS = new Socket(ip, 6832);
        } catch (UnknownHostException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    
}

und im Manifest habe ich noch folgende Zeile eingefügt:
Code:
<uses-permission android:name="android.permission.INTERNET" />

Der LogCat dazu sieht folgendermaßen aus:
Code:
10-28 02:34:13.079: D/CLIPBOARD(19951): Hide Clipboard dialog at Starting input: finished by someone else... !
10-28 02:34:15.309: D/AndroidRuntime(19951): Shutting down VM
10-28 02:34:15.309: W/dalvikvm(19951): threadid=1: thread exiting with uncaught exception (group=0x40c601f8)
10-28 02:34:15.319: E/AndroidRuntime(19951): FATAL EXCEPTION: main
10-28 02:34:15.319: E/AndroidRuntime(19951): java.lang.IllegalStateException: Could not execute method of the activity
10-28 02:34:15.319: E/AndroidRuntime(19951):     at android.view.View$1.onClick(View.java:3116)
10-28 02:34:15.319: E/AndroidRuntime(19951):     at android.view.View.performClick(View.java:3644)
10-28 02:34:15.319: E/AndroidRuntime(19951):     at android.view.View$PerformClick.run(View.java:14313)
10-28 02:34:15.319: E/AndroidRuntime(19951):     at android.os.Handler.handleCallback(Handler.java:605)
10-28 02:34:15.319: E/AndroidRuntime(19951):     at android.os.Handler.dispatchMessage(Handler.java:92)
10-28 02:34:15.319: E/AndroidRuntime(19951):     at android.os.Looper.loop(Looper.java:137)
10-28 02:34:15.319: E/AndroidRuntime(19951):     at android.app.ActivityThread.main(ActivityThread.java:4517)
10-28 02:34:15.319: E/AndroidRuntime(19951):     at java.lang.reflect.Method.invokeNative(Native Method)
10-28 02:34:15.319: E/AndroidRuntime(19951):     at java.lang.reflect.Method.invoke(Method.java:511)
10-28 02:34:15.319: E/AndroidRuntime(19951):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:993)
10-28 02:34:15.319: E/AndroidRuntime(19951):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:760)
10-28 02:34:15.319: E/AndroidRuntime(19951):     at dalvik.system.NativeStart.main(Native Method)
10-28 02:34:15.319: E/AndroidRuntime(19951): Caused by: java.lang.reflect.InvocationTargetException
10-28 02:34:15.319: E/AndroidRuntime(19951):     at java.lang.reflect.Method.invokeNative(Native Method)
10-28 02:34:15.319: E/AndroidRuntime(19951):     at java.lang.reflect.Method.invoke(Method.java:511)
10-28 02:34:15.319: E/AndroidRuntime(19951):     at android.view.View$1.onClick(View.java:3111)
10-28 02:34:15.319: E/AndroidRuntime(19951):     ... 11 more
10-28 02:34:15.319: E/AndroidRuntime(19951): Caused by: android.os.NetworkOnMainThreadException
10-28 02:34:15.319: E/AndroidRuntime(19951):     at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1099)
10-28 02:34:15.319: E/AndroidRuntime(19951):     at libcore.io.BlockGuardOs.connect(BlockGuardOs.java:84)
10-28 02:34:15.319: E/AndroidRuntime(19951):     at libcore.io.IoBridge.connectErrno(IoBridge.java:127)
10-28 02:34:15.319: E/AndroidRuntime(19951):     at libcore.io.IoBridge.connect(IoBridge.java:112)
10-28 02:34:15.319: E/AndroidRuntime(19951):     at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192)
10-28 02:34:15.319: E/AndroidRuntime(19951):     at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
10-28 02:34:15.319: E/AndroidRuntime(19951):     at java.net.Socket.startupSocket(Socket.java:566)
10-28 02:34:15.319: E/AndroidRuntime(19951):     at java.net.Socket.tryAllAddresses(Socket.java:127)
10-28 02:34:15.319: E/AndroidRuntime(19951):     at java.net.Socket.<init>(Socket.java:177)
10-28 02:34:15.319: E/AndroidRuntime(19951):     at java.net.Socket.<init>(Socket.java:149)
10-28 02:34:15.319: E/AndroidRuntime(19951):     at com.example.getit.MainActivity.sendData(MainActivity.java:23)
10-28 02:34:15.319: E/AndroidRuntime(19951):     ... 14 more

Hat vieleicht jemand einen Lösungsvorschlag hier für?
 
warum hast nicht einfach mal NetworkOnMainthreadException bei google eingegeben?

dazu findest wahrscheinlich 5000 einträge

wie der name der exception schon sagt, machst du netzwerk operationen im main thread. das ist bei android aber verboten -> da die ui dadurch blockiert wird. seit android 3.0 wird da eine exception geworfen, damit ja niemand auf die idee kommt, das zu tun.

das heißt, netzwerk operationen auslangern => asynctask
 
Zurück
Oben Unten