0

I am making simple app which get the data from the android app and pass it to local mysql database(wamp). whenever i click on submit then its forcefully close.I have only 1 MainActivity that sends data to Mysql.

1.MainActivity

public class MainActivity extends ActionBarActivity {

EditText e_clas,e_teacher,e_name,e_mobile,e_email,e_note;
Button bSubmit;
//Database Connection file 
public static String url = "http://192.168.43.50/missconnection.php";
String clas,teacher,name,mobile,email,note;
InputStream is = null;
String exceptionMessage = "There seems to be some problem connecting to database. " +
        "Please check your Internet Connection and try again.";
String successMessage = "Data has been entered successfully";


@Override

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

     e_clas=(EditText) findViewById(R.id.Class);
     e_teacher=(EditText) findViewById(R.id.Teacher);
     e_name=(EditText) findViewById(R.id.Name);
     e_mobile=(EditText) findViewById(R.id.Mobile);
     e_email=(EditText) findViewById(R.id.Email);
     e_note=(EditText) findViewById(R.id.Note);
     bSubmit = (Button) findViewById(R.id.bSubmit);
    bSubmit.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
        clas=e_clas.getText().toString();
        teacher=e_teacher.getText().toString();
        name = e_name.getText().toString();
        mobile = e_mobile.getText().toString();
        email = e_mobile.getText().toString();
        note = e_note.getText().toString();
        if(clas.equals("")||
            teacher.equals("")||
            name.equals("")||
            mobile.equals("")||
            email.equals("")||
            note.equals("")){

            String msg = "Miss your one or more field Empty...";
            Toast.makeText(getApplicationContext(),msg,Toast.LENGTH_LONG).show();
            e_clas.setText("");
            e_teacher.setText("");
            e_name.setText("");
            e_mobile.setText("");
            e_email.setText("");
            e_note.setText("");
        }else{
            //insert in database fields
            List<NameValuePair> nameValuePairList = new ArrayList<NameValuePair>();
            nameValuePairList.add(new BasicNameValuePair("stud_clas",clas));
            nameValuePairList.add(new BasicNameValuePair("teacher", teacher));
            nameValuePairList.add(new BasicNameValuePair("name", name));
            nameValuePairList.add(new BasicNameValuePair("mobile",mobile));
            nameValuePairList.add(new BasicNameValuePair("email", email));
            nameValuePairList.add(new BasicNameValuePair("note", note));
            try{
                //send data to database
                HttpClient httpClient = new DefaultHttpClient();
                HttpPost httpPost = new HttpPost(url);
                httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairList));
                HttpResponse httpResponse = httpClient.execute(httpPost);
                HttpEntity httpEntity = httpResponse.getEntity();
                is = httpEntity.getContent();
                e_clas.setText("");
                e_teacher.setText("");
                e_name.setText("");
                e_mobile.setText("");
                e_email.setText("");
                e_note.setText("");
                Toast.makeText(getApplicationContext(), successMessage, Toast.LENGTH_LONG).show();
                is.close();
            }catch(IOException e){
                Toast.makeText(getApplicationContext(), exceptionMessage, Toast.LENGTH_LONG).show();
            }
        }

        }
    });         

2.This is log file

enter code here     10-04 02:33:59.020: E/AndroidRuntime(1253): FATAL EXCEPTION: main
    10-04 02:33:59.020: E/AndroidRuntime(1253): Process: com.example.idontunderstandmiss, PID: 1253
    10-04 02:33:59.020: E/AndroidRuntime(1253): android.os.NetworkOnMainThreadException
    10-04 02:33:59.020: E/AndroidRuntime(1253):     at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1145)
    10-04 02:33:59.020: E/AndroidRuntime(1253):     at libcore.io.BlockGuardOs.connect(BlockGuardOs.java:84)
    10-04 02:33:59.020: E/AndroidRuntime(1253):     at libcore.io.IoBridge.connectErrno(IoBridge.java:127)
    10-04 02:33:59.020: E/AndroidRuntime(1253):     at libcore.io.IoBridge.connect(IoBridge.java:112)
    10-04 02:33:59.020: E/AndroidRuntime(1253):     at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192)
    10-04 02:33:59.020: E/AndroidRuntime(1253):     at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:459)
    10-04 02:33:59.020: E/AndroidRuntime(1253):     at java.net.Socket.connect(Socket.java:843)
    10-04 02:33:59.020: E/AndroidRuntime(1253):     at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:119)
    10-04 02:33:59.020: E/AndroidRuntime(1253):     at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:144)
    10-04 02:33:59.020: E/AndroidRuntime(1253):     at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
    10-04 02:33:59.020: E/AndroidRuntime(1253):     at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
    10-04 02:33:59.020: E/AndroidRuntime(1253):     at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360)
    10-04 02:33:59.020: E/AndroidRuntime(1253):     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
    10-04 02:33:59.020: E/AndroidRuntime(1253):     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
    10-04 02:33:59.020: E/AndroidRuntime(1253):     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
    10-04 02:33:59.020: E/AndroidRuntime(1253):     at com.example.idontunderstandmiss.MainActivity$1.onClick(MainActivity.java:91)
    10-04 02:33:59.020: E/AndroidRuntime(1253):     at android.view.View.performClick(View.java:4424)
    10-04 02:33:59.020: E/AndroidRuntime(1253):     at android.view.View$PerformClick.run(View.java:18383)
    10-04 02:33:59.020: E/AndroidRuntime(1253):     at android.os.Handler.handleCallback(Handler.java:733)
    10-04 02:33:59.020: E/AndroidRuntime(1253):     at android.os.Handler.dispatchMessage(Handler.java:95)
    10-04 02:33:59.020: E/AndroidRuntime(1253):     at android.os.Looper.loop(Looper.java:137)
    10-04 02:33:59.020: E/AndroidRuntime(1253):     at android.app.ActivityThread.main(ActivityThread.java:4998)
    10-04 02:33:59.020: E/AndroidRuntime(1253):     at java.lang.reflect.Method.invokeNative(Native Method)
    10-04 02:33:59.020: E/AndroidRuntime(1253):     at java.lang.reflect.Method.invoke(Method.java:515)
    10-04 02:33:59.020: E/AndroidRuntime(1253):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:777)
    10-04 02:33:59.020: E/AndroidRuntime(1253):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:593)
    10-04 02:33:59.020: E/AndroidRuntime(1253):     at dalvik.system.NativeStart.main(Native Method)

I also put the Access Permisson into manifest file INTERNET. Please help what can i do

  • Possible duplicate of [HttpResponse.getEntity() NetworkOnMainThreadException](http://stackoverflow.com/questions/13467530/httpresponse-getentity-networkonmainthreadexception) – MWiesner Oct 04 '15 at 07:05

2 Answers2

1

Finally i solve this by adding this two lines

StrictMode.ThreadPolicy threadPolicy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(threadPolicy);
0
  1. HttpClient is deprecated in lollipop device.
  2. you can't run long process in main UI thread like connect to the internet. use asynchronous task or Handler to perform http task you can flow this tutorial or you can use this library
Salauddin Gazi
  • 1,497
  • 1
  • 13
  • 18