简体   繁体   中英

unfortunately has stopped android

I have a problem. When I run my android program I have a error: "unfortunately has stopped android". Why I see this error when I run application? hear is my file:

enter code here
import java.io.IOException;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;



import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

public class SimpleClientActivityActivity extends Activity {

private Socket client;
private PrintWriter printwriter;
private EditText textField;
private Button button;
private String messsage;

@Override
public void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.main);

 //textField = (EditText) findViewById(R.id.editText1); //reference to the text field
  button = (Button) findViewById(R.id.button1);   //reference to the send button

  //Button press event listener
  button.setOnClickListener(new View.OnClickListener() {

   public void onClick(View v) {

   //messsage = textField.getText().toString(); //get the text message on the text      field
    //textField.setText("");      //Reset the text field to blank

  try {

 client = new Socket("10.0.2.2", 4444);  //connect to server
 printwriter = new PrintWriter(client.getOutputStream(),true);
 printwriter.write(messsage);  //write the message to output stream

 printwriter.flush();
 printwriter.close();
 client.close();   //closing the connection

  } catch (UnknownHostException e) {
   e.printStackTrace();
  } catch (IOException e) {
   e.printStackTrace();
  }
  }
 });

 }
}

I would like to send sms to PC server with my adnroid client

It may be because you are doing network operations on the main thread. Look into your logcat and there will be info, in red.

try this

 new Thread(){
        @Override
        public void run(){
            // your onClick code here
        }
    }.start();

Also you can use AsyncTask for network operations

public class YourTask extends AsyncTask{

    private Context context;
    private ProgressDialog dialog;

    public SplitCueTask(Context context) {
        this.context = context;
        this.dialog = new ProgressDialog(context);           
    }

    @Override
    protected void onPreExecute() {
        dialog.setMessage(getResources().getString(R.string.loading));
        dialog.show();

    }

    @Override
    protected Boolean doInBackground(Object... objects) {
        // you logic here, return result
        return someObject.
    }


    @Override
    protected void onPostExecute(Object someObject) {
        if (dialog.isShowing())
             dialog.dismiss()
        // handle result here, post it on UI or something else
    }


}

Run task

new YourTask(context).execute();    

And dont forget to add INTERNET PERMISSION to AndroidManifest

<uses-permission android:name="android.permission.INTERNET" />

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM