Java 不幸的是,应用程序停止工作

Java 不幸的是,应用程序停止工作,java,android,android-applicationinfo,Java,Android,Android Applicationinfo,我是android开发的初学者。我已经找了一个星期了。逐字跟随所有教程。每当我启动android模拟器时,它首先显示ProcessSystem没有响应。等待还是退出?第二次加载应用程序,但在填写表单后,只要我单击注册或登录按钮,在显示流程对话框几秒钟后,就会显示“不幸的是,应用程序已停止工作”,并退出。 我的Login.java文件是 public class Login extends Activity implements OnClickListener{ private Edit

我是android开发的初学者。我已经找了一个星期了。逐字跟随所有教程。每当我启动android模拟器时,它首先显示ProcessSystem没有响应。等待还是退出?第二次加载应用程序,但在填写表单后,只要我单击注册或登录按钮,在显示流程对话框几秒钟后,就会显示“不幸的是,应用程序已停止工作”,并退出。 我的Login.java文件是

public class Login extends Activity implements OnClickListener{

    private EditText user, pass;
    private Button mSubmit, mRegister;

     // Progress Dialog
    private ProgressDialog pDialog;

    // JSON parser class
    JSONParser jsonParser = new JSONParser();
    private static final String LOGIN_URL = "http://localhost/webservice/login.php";
    //JSON element ids from repsonse of php script:
    private static final String TAG_SUCCESS = "success";
    private static final String TAG_MESSAGE = "message";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.login);

        //setup input fields
        user = (EditText)findViewById(R.id.username);
        pass = (EditText)findViewById(R.id.password);
        //setup buttons
        mSubmit = (Button)findViewById(R.id.login);
        mRegister = (Button)findViewById(R.id.register);
        //register listeners
        mSubmit.setOnClickListener(this);
        mRegister.setOnClickListener(this);

    }

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        switch (v.getId()) {
        case R.id.login:
                new AttemptLogin().execute();
            break;
        case R.id.register:
                Intent i = new Intent(this, Register.class);
                startActivity(i);
            break;
        default:
            break;
        }
    }

    class AttemptLogin extends AsyncTask<String, String, String> {


        boolean failure = false;

        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            pDialog = new ProgressDialog(Login.this);
            pDialog.setMessage("Attempting login...");
            pDialog.setIndeterminate(false);
            pDialog.setCancelable(true);
            pDialog.show();
        }

        @Override
        protected String doInBackground(String... args) {
            // TODO Auto-generated method stub
             // Check for success tag
            int success;
            String username = user.getText().toString();
            String password = pass.getText().toString();
            try {
                // Building Parameters
                List<NameValuePair> params = new ArrayList<NameValuePair>();
                params.add(new BasicNameValuePair("username", username));
                params.add(new BasicNameValuePair("password", password));
                Log.d("request!", "starting");
                // getting product details by making HTTP request
                JSONObject json = jsonParser.makeHttpRequest(LOGIN_URL, "POST", params);
                // check your log for json response
                Log.d("Login attempt", json.toString());
                // json success tag
                success = json.getInt(TAG_SUCCESS);
                if (success == 1) {
                    Log.d("Login Successful!", json.toString());
                    Intent i = new Intent(Login.this, Display.class);
                    finish();
                    startActivity(i);
                    return json.getString(TAG_MESSAGE);
                }else{
                    Log.d("Login Failure!", json.getString(TAG_MESSAGE));
                    return json.getString(TAG_MESSAGE);
                }
            } catch (JSONException e) {
                e.printStackTrace();
            }
                return null;
        }

        protected void onPostExecute(String file_url) {
            // dismiss the dialog once product deleted
            pDialog.dismiss();
            if (file_url != null){

                Toast.makeText(Login.this, file_url, Toast.LENGTH_LONG).show();
            }
        }
    }
}
public class JSONParser {
    static InputStream is = null;
    static JSONObject jObj = null;
    static String json = "";
    // constructor
    public JSONParser() {
    }
    public JSONObject getJSONFromUrl(final String url) {
        // Making HTTP request
        try {
           // Construct the client and the HTTP request.
            DefaultHttpClient httpClient = new DefaultHttpClient();
            HttpPost httpPost = new HttpPost(url);
            // Execute the POST request and store the response locally.
            HttpResponse httpResponse = httpClient.execute(httpPost);
            // Extract data from the response.
            HttpEntity httpEntity = httpResponse.getEntity();
            // Open an inputStream with the data content.
            is = httpEntity.getContent();
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        } catch (ClientProtocolException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        try {
            // Create a BufferedReader to parse through the inputStream.
            BufferedReader reader = new BufferedReader(new InputStreamReader(
                    is, "iso-8859-1"), 8);
            // Declare a string builder to help with the parsing.
            StringBuilder sb = new StringBuilder();
            // Declare a string to store the JSON object data in string form.
            String line = null;
            // Build the string until null.
            while ((line = reader.readLine()) != null) {
                sb.append(line + "\n");
            }
            // Close the input stream.
            is.close();
            // Convert the string builder data to an actual string.
            json = sb.toString();
        } catch (Exception e) {
            Log.e("Buffer Error", "Error converting result " + e.toString());
        }
        // Try to parse the string to a JSON object
        try {
           jObj = new JSONObject(json);
        } catch (JSONException e) {
            Log.e("JSON Parser", "Error parsing data " + e.toString());
        }
        // Return the JSON Object.
        return jObj;
    }
    // function get json from url
    // by making HTTP POST or GET mehtod
    public JSONObject makeHttpRequest(String url, String method,
            List<NameValuePair> params) {
        // Making HTTP request
        try {
            // check for request method
            if(method == "POST"){
                // request method is POST
                // defaultHttpClient
                DefaultHttpClient httpClient = new DefaultHttpClient();
                HttpPost httpPost = new HttpPost(url);
                httpPost.setEntity(new UrlEncodedFormEntity(params));
                HttpResponse httpResponse = httpClient.execute(httpPost);
                HttpEntity httpEntity = httpResponse.getEntity();
                is = httpEntity.getContent();
        }else if(method == "GET"){
                // request method is GET
                DefaultHttpClient httpClient = new DefaultHttpClient();
                String paramString = URLEncodedUtils.format(params, "utf-8");
                url += "?" + paramString;
                HttpGet httpGet = new HttpGet(url);
                HttpResponse httpResponse = httpClient.execute(httpGet);
                HttpEntity httpEntity = httpResponse.getEntity();
                is = httpEntity.getContent();
            }          
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        } catch (ClientProtocolException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        try {
            BufferedReader reader = new BufferedReader(new InputStreamReader(
                    is, "iso-8859-1"), 8);
            StringBuilder sb = new StringBuilder();
            String line = null;
            while ((line = reader.readLine()) != null) {
                sb.append(line + "\n");
            }
            is.close();
            json = sb.toString();
        } catch (Exception e) {
            Log.e("Buffer Error", "Error converting result " + e.toString());
        }
        // try parse the string to a JSON object
        try {
            jObj = new JSONObject(json);
        } catch (JSONException e) {
            Log.e("JSON Parser", "Error parsing data " + e.toString());
        }
        // return JSON String
        return jObj;

    }
}
公共类登录扩展活动实现OnClickListener{
私人编辑文本用户,通过;
私人按钮mSubmit,mRegister;
//进度对话框
私人对话;
//JSON解析器类
JSONParser JSONParser=新的JSONParser();
私有静态最终字符串登录\u URL=”http://localhost/webservice/login.php";
//php脚本repsonse中的JSON元素ID:
私有静态最终字符串标记_SUCCESS=“SUCCESS”;
私有静态最终字符串标记_MESSAGE=“MESSAGE”;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
//TODO自动生成的方法存根
super.onCreate(savedInstanceState);
setContentView(R.layout.login);
//设置输入字段
user=(EditText)findViewById(R.id.username);
pass=(EditText)findViewById(R.id.password);
//设置按钮
mSubmit=(按钮)findviewbyd(R.id.login);
mRegister=(按钮)findviewbyd(R.id.register);
//注册侦听器
mSubmit.setOnClickListener(这个);
mRegister.setOnClickListener(此);
}
@凌驾
公共void onClick(视图v){
//TODO自动生成的方法存根
开关(v.getId()){
案例R.id.login:
新建AttemptLogin().execute();
打破
案例R.id.登记册:
意图i=新意图(这是Register.class);
星触觉(i);
打破
违约:
打破
}
}
类AttemptLogin扩展了AsyncTask{
布尔失败=假;
@凌驾
受保护的void onPreExecute(){
super.onPreExecute();
pDialog=newprogressdialog(Login.this);
setMessage(“正在尝试登录…”);
pDialog.setUndeterminate(假);
pDialog.setCancelable(真);
pDialog.show();
}
@凌驾
受保护的字符串doInBackground(字符串…args){
//TODO自动生成的方法存根
//检查成功标签
成功;
字符串username=user.getText().toString();
字符串密码=pass.getText().toString();
试一试{
//建筑参数
List params=new ArrayList();
添加(新的BasicNameValuePair(“用户名”,用户名));
添加(新的BasicNameValuePair(“密码”,password));
Log.d(“请求!”,“启动”);
//通过发出HTTP请求获取产品详细信息
JSONObject json=jsonParser.makeHttpRequest(登录URL,“POST”,参数);
//检查日志中的json响应
Log.d(“登录尝试”,json.toString());
//json成功标记
success=json.getInt(TAG_success);
如果(成功==1){
Log.d(“登录成功!”,json.toString();
意图i=新意图(Login.this,Display.class);
完成();
星触觉(i);
返回json.getString(TAG_消息);
}否则{
Log.d(“登录失败!”,json.getString(TAG_MESSAGE));
返回json.getString(TAG_消息);
}
}捕获(JSONException e){
e、 printStackTrace();
}
返回null;
}
受保护的void onPostExecute(字符串文件\u url){
//删除产品后关闭对话框
pDialog.disclose();
如果(文件url!=null){
Toast.makeText(Login.this,file_url,Toast.LENGTH_LONG.show();
}
}
}
}
我的Register.java是

public class Register extends Activity implements OnClickListener{

    private EditText user, pass;
    private Button  mRegister;

     // Progress Dialog
    private ProgressDialog pDialog;
    // JSON parser class
    JSONParser jsonParser = new JSONParser();

    //php login script


    private static final String LOGIN_URL =  "http://localhost/webservice/register.php";

    private static final String TAG_SUCCESS = "success";
    private static final String TAG_MESSAGE = "message";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.register);
        user = (EditText)findViewById(R.id.username);
        pass = (EditText)findViewById(R.id.password);
        mRegister = (Button)findViewById(R.id.register);
        mRegister.setOnClickListener(this);

    }

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub

                new CreateUser().execute();
    }

    class CreateUser extends AsyncTask<String, String, String> {

        boolean failure = false;

        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            pDialog = new ProgressDialog(Register.this);
            pDialog.setMessage("Creating User...");
            pDialog.setIndeterminate(false);
            pDialog.setCancelable(true);
            pDialog.show();
        }

        @Override
        protected String doInBackground(String... args) {
            // TODO Auto-generated method stub
             // Check for success tag
            int success;
            String username = user.getText().toString();
            String password = pass.getText().toString();
            try {
                // Building Parameters
                List<NameValuePair> params = new ArrayList<NameValuePair>();
                params.add(new BasicNameValuePair("username", username));
                params.add(new BasicNameValuePair("password", password));
                Log.d("request!", "starting");
                //Posting user data to script
                JSONObject json = jsonParser.makeHttpRequest(
                       LOGIN_URL, "POST", params);
                // full json response
                Log.d("Login attempt", json.toString());
                // json success element
                success = json.getInt(TAG_SUCCESS);
                if (success == 1) {
                    Log.d("User Created!", json.toString());
                    finish();
                    return json.getString(TAG_MESSAGE);
                }else{
                    Log.d("Login Failure!", json.getString(TAG_MESSAGE));
                    return json.getString(TAG_MESSAGE);
                }
            } catch (JSONException e) {
                e.printStackTrace();
            }
            return null;

        }

        protected void onPostExecute(String file_url) {

            pDialog.dismiss();
            if (file_url != null){
                Toast.makeText(Register.this, file_url, Toast.LENGTH_LONG).show();
            }
        }
    }
}
公共类寄存器扩展活动实现OnClickListener{
私人编辑文本用户,通过;
私人按钮注册器;
//进度对话框
私人对话;
//JSON解析器类
JSONParser JSONParser=新的JSONParser();
//php登录脚本
私有静态最终字符串登录\u URL=”http://localhost/webservice/register.php";
私有静态最终字符串标记_SUCCESS=“SUCCESS”;
私有静态最终字符串标记_MESSAGE=“MESSAGE”;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
//TODO自动生成的方法存根
super.onCreate(savedInstanceState);
setContentView(R.layout.register);
user=(EditText)findViewById(R.id.username);
pass=(EditText)findViewById(R.id.password);
mRegister=(按钮)findviewbyd(R.id.register);
mRegister.setOnClickListener(此);
}
@凌驾
公共void onClick(视图v){
//TODO自动生成的方法存根
新建CreateUser().execute();
}
类CreateUser扩展异步任务{
布尔失败=假;
@凌驾
受保护的void onPreExecute(){
super.onPreExecute();
pDialog=新建进度对话框(Register.this);
setMessage(“正在创建用户…”);
pDialog.setUndeterminate(假);
pDialog.setCancelable(真);
pDialog.show();
}
@凌驾
受保护的字符串doInBackground(字符串…args){
//TODO自动生成的方法存根
//检查成功标签
成功;
字符串username=user.getText().toString
05-13 06:57:20.120: D/gralloc_goldfish(1219): Emulator without GPU emulation detected.
05-13 06:57:25.540: I/Choreographer(1219): Skipped 282 frames!  The application may be doing too much work on its main thread.
05-13 06:57:41.450: D/dalvikvm(1219): GC_FOR_ALLOC freed 138K, 6% free 3395K/3604K, paused 38ms, total 43ms
05-13 06:57:41.590: D/dalvikvm(1219): GC_FOR_ALLOC freed 35K, 6% free 3496K/3684K, paused 34ms, total 40ms
05-13 06:57:41.590: I/dalvikvm-heap(1219): Grow heap (frag case) to 4.085MB for 635812-byte allocation
05-13 06:57:42.280: D/request!(1219): starting
05-13 06:57:42.600: I/Choreographer(1219): Skipped 100 frames!  The application may be doing too much work on its main thread.
05-13 06:57:42.770: I/Choreographer(1219): ...and 8 more
05-13 06:58:08.680: W/System.err(1219): java.net.UnknownHostException: Unable to resolve host "http": No address associated with hostname
05-13 06:58:08.800: I/Choreographer(1219): Skipped 37 frames!  The application may be doing too much work on its main thread.
05-13 06:58:08.880: W/System.err(1219):     at java.net.InetAddress.lookupHostByName(InetAddress.java:424)
05-13 06:58:08.880: W/System.err(1219):     at java.net.InetAddress.getAllByNameImpl(InetAddress.java:236)
05-13 06:58:08.880: W/System.err(1219):     at java.net.InetAddress.getAllByName(InetAddress.java:214)
05-13 06:58:08.970: W/System.err(1219):     at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:137)
05-13 06:58:08.970: W/System.err(1219):     at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
05-13 06:58:08.970: W/System.err(1219):     at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
05-13 06:58:09.720: W/System.err(1219):     at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360)
05-13 06:58:09.720: W/System.err(1219):     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
05-13 06:58:09.720: W/System.err(1219):     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
05-13 06:58:09.740: W/System.err(1219):     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
05-13 06:58:09.740: W/System.err(1219):     at com.example.mysqltest.JSONParser.makeHttpRequest(JSONParser.java:89)
05-13 06:58:09.740: W/System.err(1219):     at com.example.mysqltest.Register$CreateUser.doInBackground(Register.java:94)
05-13 06:58:10.220: W/System.err(1219):     at com.example.mysqltest.Register$CreateUser.doInBackground(Register.java:1)
05-13 06:58:10.470: W/System.err(1219):     at android.os.AsyncTask$2.call(AsyncTask.java:288)
05-13 06:58:10.470: W/System.err(1219):     at java.util.concurrent.FutureTask.run(FutureTask.java:237)
05-13 06:58:10.530: W/System.err(1219):     at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
05-13 06:58:10.530: W/System.err(1219):     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
05-13 06:58:10.540: W/System.err(1219):     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
05-13 06:58:10.540: W/System.err(1219):     at java.lang.Thread.run(Thread.java:841)
05-13 06:58:10.540: W/System.err(1219): Caused by: libcore.io.GaiException: getaddrinfo failed: EAI_NODATA (No address associated with hostname)
05-13 06:58:10.610: I/Choreographer(1219): Skipped 47 frames!  The application may be doing too much work on its main thread.
05-13 06:58:11.070: W/System.err(1219):     at libcore.io.Posix.getaddrinfo(Native Method)
05-13 06:58:11.070: W/System.err(1219):     at libcore.io.ForwardingOs.getaddrinfo(ForwardingOs.java:61)
05-13 06:58:11.070: W/System.err(1219):     at java.net.InetAddress.lookupHostByName(InetAddress.java:405)
05-13 06:58:11.080: W/System.err(1219):     ... 18 more
05-13 06:58:11.080: E/Buffer Error(1219): Error converting result java.lang.NullPointerException: lock == null
05-13 06:58:11.180: E/JSON Parser(1219): Error parsing data org.json.JSONException: End of input at character 0 of 
05-13 06:58:11.180: W/dalvikvm(1219): threadid=11: thread exiting with uncaught exception (group=0xb3af1ba8)
05-13 06:58:11.420: E/AndroidRuntime(1219): FATAL EXCEPTION: AsyncTask #1
05-13 06:58:11.420: E/AndroidRuntime(1219): Process: com.example.mysqltest, PID: 1219
05-13 06:58:11.420: E/AndroidRuntime(1219): java.lang.RuntimeException: An error occured while executing doInBackground()
05-13 06:58:11.420: E/AndroidRuntime(1219):     at android.os.AsyncTask$3.done(AsyncTask.java:300)
05-13 06:58:11.420: E/AndroidRuntime(1219):     at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355)
05-13 06:58:11.420: E/AndroidRuntime(1219):     at java.util.concurrent.FutureTask.setException(FutureTask.java:222)
05-13 06:58:11.420: E/AndroidRuntime(1219):     at java.util.concurrent.FutureTask.run(FutureTask.java:242)
05-13 06:58:11.420: E/AndroidRuntime(1219):     at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
05-13 06:58:11.420: E/AndroidRuntime(1219):     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
05-13 06:58:11.420: E/AndroidRuntime(1219):     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
05-13 06:58:11.420: E/AndroidRuntime(1219):     at java.lang.Thread.run(Thread.java:841)
05-13 06:58:11.420: E/AndroidRuntime(1219): Caused by: java.lang.NullPointerException
05-13 06:58:11.420: E/AndroidRuntime(1219):     at com.example.mysqltest.Register$CreateUser.doInBackground(Register.java:97)
05-13 06:58:11.420: E/AndroidRuntime(1219):     at com.example.mysqltest.Register$CreateUser.doInBackground(Register.java:1)
05-13 06:58:11.420: E/AndroidRuntime(1219):     at android.os.AsyncTask$2.call(AsyncTask.java:288)
05-13 06:58:11.420: E/AndroidRuntime(1219):     at java.util.concurrent.FutureTask.run(FutureTask.java:237)
05-13 06:58:11.420: E/AndroidRuntime(1219):     ... 4 more
05-13 06:58:15.100: E/WindowManager(1219): android.view.WindowLeaked: Activity com.example.mysqltest.Register has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView{b3e3c660 V.E..... R.....ID 0,0-456,144} that was originally added here
05-13 06:58:15.100: E/WindowManager(1219):  at android.view.ViewRootImpl.<init>(ViewRootImpl.java:348)
05-13 06:58:15.100: E/WindowManager(1219):  at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:248)
05-13 06:58:15.100: E/WindowManager(1219):  at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:69)
05-13 06:58:15.100: E/WindowManager(1219):  at android.app.Dialog.show(Dialog.java:286)
05-13 06:58:15.100: E/WindowManager(1219):  at com.example.mysqltest.Register$CreateUser.onPreExecute(Register.java:77)
05-13 06:58:15.100: E/WindowManager(1219):  at android.os.AsyncTask.executeOnExecutor(AsyncTask.java:587)
05-13 06:58:15.100: E/WindowManager(1219):  at android.os.AsyncTask.execute(AsyncTask.java:535)
05-13 06:58:15.100: E/WindowManager(1219):  at com.example.mysqltest.Register.onClick(Register.java:61)
05-13 06:58:15.100: E/WindowManager(1219):  at android.view.View.performClick(View.java:4438)
05-13 06:58:15.100: E/WindowManager(1219):  at android.view.View$PerformClick.run(View.java:18422)
05-13 06:58:15.100: E/WindowManager(1219):  at android.os.Handler.handleCallback(Handler.java:733)
05-13 06:58:15.100: E/WindowManager(1219):  at android.os.Handler.dispatchMessage(Handler.java:95)
05-13 06:58:15.100: E/WindowManager(1219):  at android.os.Looper.loop(Looper.java:136)
05-13 06:58:15.100: E/WindowManager(1219):  at android.app.ActivityThread.main(ActivityThread.java:5017)
05-13 06:58:15.100: E/WindowManager(1219):  at java.lang.reflect.Method.invokeNative(Native Method)
05-13 06:58:15.100: E/WindowManager(1219):  at java.lang.reflect.Method.invoke(Method.java:515)
05-13 06:58:15.100: E/WindowManager(1219):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
05-13 06:58:15.100: E/WindowManager(1219):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
05-13 06:58:15.100: E/WindowManager(1219):  at dalvik.system.NativeStart.main(Native Method)
05-14 07:09:16.291     895-1191/com.example.mysqltest.app W/System.err﹕ org.apache.http.conn.HttpHostConnectException: Connection to http://10.0.2.2 refused
05-14 07:09:16.501     895-1191/com.example.mysqltest.app W/System.err﹕ at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:183)
05-14 07:09:16.501     895-1191/com.example.mysqltest.app W/System.err﹕ at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
05-14 07:09:16.501     895-1191/com.example.mysqltest.app W/System.err﹕ at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
05-14 07:09:16.501     895-1191/com.example.mysqltest.app W/System.err﹕ at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360)
05-14 07:09:16.501     895-1191/com.example.mysqltest.app W/System.err﹕ at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
05-14 07:09:16.501     895-1191/com.example.mysqltest.app W/System.err﹕ at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
05-14 07:09:16.501     895-1191/com.example.mysqltest.app W/System.err﹕ at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
05-14 07:09:16.501     895-1191/com.example.mysqltest.app W/System.err﹕ at com.example.mysqltest.app.JSONParser.makeHttpRequest(JSONParser.java:90)
05-14 07:09:16.501     895-1191/com.example.mysqltest.app W/System.err﹕ at com.example.mysqltest.app.Register$CreateUser.doInBackground(Register.java:94)
05-14 07:09:16.511     895-1191/com.example.mysqltest.app W/System.err﹕ at com.example.mysqltest.app.Register$CreateUser.doInBackground(Register.java:64)
05-14 07:09:16.511     895-1191/com.example.mysqltest.app W/System.err﹕ at android.os.AsyncTask$2.call(AsyncTask.java:288)
05-14 07:09:16.561     895-1191/com.example.mysqltest.app W/System.err﹕ at java.util.concurrent.FutureTask.run(FutureTask.java:237)
05-14 07:09:16.561     895-1191/com.example.mysqltest.app W/System.err﹕ at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
05-14 07:09:16.571     895-1191/com.example.mysqltest.app W/System.err﹕ at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
05-14 07:09:16.571     895-1191/com.example.mysqltest.app W/System.err﹕ at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
05-14 07:09:16.571     895-1191/com.example.mysqltest.app W/System.err﹕ at java.lang.Thread.run(Thread.java:841)
05-14 07:09:16.571     895-1191/com.example.mysqltest.app W/System.err﹕ Caused by: java.net.ConnectException: socket failed: EACCES (Permission denied)
05-14 07:09:17.191     895-1191/com.example.mysqltest.app W/System.err﹕ at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:181)
05-14 07:09:17.281     895-1191/com.example.mysqltest.app W/System.err﹕ ... 15 more
05-14 07:09:17.441     895-1191/com.example.mysqltest.app W/System.err﹕ Caused by: java.net.SocketException: socket failed: EACCES (Permission denied)
05-14 07:09:17.671     895-1191/com.example.mysqltest.app W/System.err﹕ at libcore.io.IoBridge.socket(IoBridge.java:576)
05-14 07:09:18.601     895-1191/com.example.mysqltest.app W/System.err﹕ Caused by: libcore.io.ErrnoException: socket failed: EACCES (Permission denied)
05-14 07:09:19.031     895-1191/com.example.mysqltest.app W/System.err﹕ at libcore.io.Posix.socket(Native Method)
05-14 07:09:19.031     895-1191/com.example.mysqltest.app W/System.err﹕ at libcore.io.BlockGuardOs.socket(BlockGuardOs.java:181)
05-14 07:09:19.131     895-1191/com.example.mysqltest.app W/System.err﹕ at libcore.io.IoBridge.socket(IoBridge.java:561)
05-14 07:09:19.131     895-1191/com.example.mysqltest.app W/System.err﹕ ... 20 more
05-14 07:09:19.141     895-1191/com.example.mysqltest.app E/Buffer Error﹕ Error converting result java.lang.NullPointerException: lock == null
05-14 07:09:19.141     895-1191/com.example.mysqltest.app E/JSON Parser﹕ Error parsing data org.json.JSONException: End of input at character 0 of
05-14 07:09:19.221     895-1191/com.example.mysqltest.app W/dalvikvm﹕ threadid=12: thread exiting with uncaught exception (group=0xb4afeba8)
05-14 07:09:19.271     895-1191/com.example.mysqltest.app E/AndroidRuntime﹕ FATAL EXCEPTION: AsyncTask #2
    Process: com.example.mysqltest.app, PID: 895
    java.lang.RuntimeException: An error occured while executing doInBackground()
            at android.os.AsyncTask$3.done(AsyncTask.java:300)
            at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355)
            at java.util.concurrent.FutureTask.setException(FutureTask.java:222)
            at java.util.concurrent.FutureTask.run(FutureTask.java:242)
            at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
            at java.lang.Thread.run(Thread.java:841)
     Caused by: java.lang.NullPointerException
            at com.example.mysqltest.app.Register$CreateUser.doInBackground(Register.java:97)
            at com.example.mysqltest.app.Register$CreateUser.doInBackground(Register.java:64)
            at android.os.AsyncTask$2.call(AsyncTask.java:288)
            at java.util.concurrent.FutureTask.run(FutureTask.java:237)
            at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
            at java.lang.Thread.run(Thread.java:841)
05-14 07:09:26.021      895-895/com.example.mysqltest.app E/WindowManager﹕ android.view.WindowLeaked: Activity com.example.mysqltest.app.Register has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView{b4e28230 V.E..... R.....ID 0,0-563,96} that was originally added here
            at android.view.ViewRootImpl.<init>(ViewRootImpl.java:348)
            at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:248)
            at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:69)
            at android.app.Dialog.show(Dialog.java:286)
            at com.example.mysqltest.app.Register$CreateUser.onPreExecute(Register.java:77)
            at android.os.AsyncTask.executeOnExecutor(AsyncTask.java:587)
            at android.os.AsyncTask.execute(AsyncTask.java:535)
            at com.example.mysqltest.app.Register.onClick(Register.java:61)
            at android.view.View.performClick(View.java:4438)
<uses-permission android:name="android.permission.INTERNET" />
private static final String LOGIN_URL = "http://localhost/webservice/login.php";
private static final String LOGIN_URL = "http://localhost/webservice/register.php";
private static final String LOGIN_URL = "http://10.0.2.2/webservice/login.php";
private static final String LOGIN_URL = "http://10.0.2.2/webservice/register.php";
class CreateUser extends AsyncTask<String, String, String> {

    private static final String LOGIN_URL =  "http://localhost/webservice/register.php";
    private static final String TAG_SUCCESS = "success";
    private static final String TAG_MESSAGE = "message";

    boolean failure = false;
    String username, password;

    ...
}
@Override
protected void onPreExecute() {
    super.onPreExecute();
    username = user.getText().toString();
    password = pass.getText().toString();
    pDialog = new ProgressDialog(Login.this);

    ...
}
@Override
protected String doInBackground(String... args) {
    // Check for success tag
    int success;
    JSONParser jsonParser = new JSONParser();

    ...
}