Hi I am trying to get this android login tutorial to work, but when I enter username and password it says unfortunately app has stopped. Here is my MainActivity:
package com.sencide;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class AndroidLogin extends Activity implements OnClickListener {
Button ok,back,exit;
TextView result;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// Login button clicked
ok = (Button)findViewById(R.id.btn_login);
ok.setOnClickListener(this);
result = (TextView)findViewById(R.id.lbl_result);
}
public void postLoginData() {
// Create a new HttpClient and Post Header
HttpClient httpclient = new DefaultHttpClient();
/* login.php returns true if username and password is equal to saranga */
HttpPost httppost = new HttpPost("http://www.sencide.com/blog/login.php");
try {
// Add user name and password
EditText uname = (EditText)findViewById(R.id.txt_username);
String username = uname.getText().toString();
EditText pword = (EditText)findViewById(R.id.txt_password);
String password = pword.getText().toString();
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
nameValuePairs.add(new BasicNameValuePair("username", username));
nameValuePairs.add(new BasicNameValuePair("password", password));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
// Execute HTTP Post Request
Log.w("SENCIDE", "Execute HTTP Post Request");
HttpResponse response = httpclient.execute(httppost);
String str = inputStreamToString(response.getEntity().getContent()).toString();
Log.w("SENCIDE", str);
if(str.toString().equalsIgnoreCase("true"))
{
Log.w("SENCIDE", "TRUE");
result.setText("Login successful");
}else
{
Log.w("SENCIDE", "FALSE");
result.setText(str);
}
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
private StringBuilder inputStreamToString(InputStream is) {
String line = "";
StringBuilder total = new StringBuilder();
// Wrap a BufferedReader around the InputStream
BufferedReader rd = new BufferedReader(new InputStreamReader(is));
// Read response until the end
try {
while ((line = rd.readLine()) != null) {
total.append(line);
}
} catch (IOException e) {
e.printStackTrace();
}
// Return full string
return total;
}
@Override
public void onClick(View view) {
if(view == ok){
postLoginData();
}
}
}
Here is my logcat:
07-25 12:26:51.226: D/libEGL(11639): loaded /system/lib/egl/libEGL_mali.so
07-25 12:26:51.226: D/libEGL(11639): loaded /system/lib/egl/libGLESv1_CM_mali.so
07-25 12:26:51.236: D/libEGL(11639): loaded /system/lib/egl/libGLESv2_mali.so
07-25 12:26:51.256: D/OpenGLRenderer(11639): Enabling debug mode 0
07-25 12:27:46.240: W/SENCIDE(11639): Execute HTTP Post Request
07-25 12:27:46.260: D/AndroidRuntime(11639): Shutting down VM
07-25 12:27:46.260: W/dalvikvm(11639): threadid=1: thread exiting with uncaught exception (group=0x40bc0318)
07-25 12:27:46.270: E/AndroidRuntime(11639): FATAL EXCEPTION: main
07-25 12:27:46.270: E/AndroidRuntime(11639): android.os.NetworkOnMainThreadException
07-25 12:27:46.270: E/AndroidRuntime(11639): at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1126)
07-25 12:27:46.270: E/AndroidRuntime(11639): at java.net.InetAddress.lookupHostByName(InetAddress.java:385)
07-25 12:27:46.270: E/AndroidRuntime(11639): at java.net.InetAddress.getAllByNameImpl(InetAddress.java:236)
07-25 12:27:46.270: E/AndroidRuntime(11639): at java.net.InetAddress.getAllByName(InetAddress.java:214)
07-25 12:27:46.270: E/AndroidRuntime(11639): at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:141)
07-25 12:27:46.270: E/AndroidRuntime(11639): at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
07-25 12:27:46.270: E/AndroidRuntime(11639): at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
07-25 12:27:46.270: E/AndroidRuntime(11639): at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360)
07-25 12:27:46.270: E/AndroidRuntime(11639): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
07-25 12:27:46.270: E/AndroidRuntime(11639): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
07-25 12:27:46.270: E/AndroidRuntime(11639): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
07-25 12:27:46.270: E/AndroidRuntime(11639): at com.sencide.AndroidLogin.postLoginData(AndroidLogin.java:70)
07-25 12:27:46.270: E/AndroidRuntime(11639): at com.sencide.AndroidLogin.onClick(AndroidLogin.java:112)
07-25 12:27:46.270: E/AndroidRuntime(11639): at android.view.View.performClick(View.java:4103)
07-25 12:27:46.270: E/AndroidRuntime(11639): at android.view.View$PerformClick.run(View.java:17117)
07-25 12:27:46.270: E/AndroidRuntime(11639): at android.os.Handler.handleCallback(Handler.java:615)
07-25 12:27:46.270: E/AndroidRuntime(11639): at android.os.Handler.dispatchMessage(Handler.java:92)
07-25 12:27:46.270: E/AndroidRuntime(11639): at android.os.Looper.loop(Looper.java:137)
07-25 12:27:46.270: E/AndroidRuntime(11639): at android.app.ActivityThread.main(ActivityThread.java:4744)
07-25 12:27:46.270: E/AndroidRuntime(11639): at java.lang.reflect.Method.invokeNative(Native Method)
07-25 12:27:46.270: E/AndroidRuntime(11639): at java.lang.reflect.Method.invoke(Method.java:511)
07-25 12:27:46.270: E/AndroidRuntime(11639): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
07-25 12:27:46.270: E/AndroidRuntime(11639): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
07-25 12:27:46.270: E/AndroidRuntime(11639): at dalvik.system.NativeStart.main(Native Method)
If anyone can help me I appreciate it as I'm having a lot of trouble trying to figure out how to get an android login app working. If anyone has any other tutorials or apps working to login to an sql server with web services I'd appreciate the direction cause that is more what I want to do.