Android 后台方法中的异常

Android 后台方法中的异常,android,Android,我正在开发一个android应用程序,它基本上是登录的,我的数据库是MySQL(本地)。我在doInBackground方法中遇到错误 public class Login extends Activity{ private EditText editTextUserName; private EditText editTextPassword; Button login; String username; String password;

我正在开发一个android应用程序,它基本上是登录的,我的数据库是MySQL(本地)。我在
doInBackground
方法中遇到错误

public class Login extends Activity{


    private EditText editTextUserName;
    private EditText editTextPassword;
    Button login;

    String username;
    String password;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.login);

        editTextUserName = (EditText) findViewById(R.id.txtUsername);
        editTextPassword = (EditText) findViewById(R.id.txtPassword);
        login = (Button)findViewById(R.id.btnLogin);


    }

    public void invokeLogin(View view){
        username = editTextUserName.getText().toString();
        password = editTextPassword.getText().toString();

        login(username,password);
    }

    private void login(final String username, String password) {

        class LoginAsync extends AsyncTask<String, Void, String>{

            private Dialog loadingDialog;

            @Override
            protected void onPreExecute() {
                super.onPreExecute();
                loadingDialog = ProgressDialog.show(Login.this, "Please wait", "Loading...");
            }

            @Override
            protected String doInBackground(String... params) {
                String uname = editTextUserName.getText().toString();
                String pass = editTextPassword.getText().toString();

                InputStream is = null;
                List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
                nameValuePairs.add(new BasicNameValuePair("editTextUserName", uname));
                nameValuePairs.add(new BasicNameValuePair("editTextPassword", pass));
                String result = null;

                try{
                    HttpClient httpClient = new DefaultHttpClient();
                    HttpPost httpPost = new HttpPost("localhost/Navigation/connect.php");
                    httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
                    HttpResponse response = httpClient.execute(httpPost);
                    HttpEntity entity = response.getEntity();
                    is = entity.getContent();
                    BufferedReader reader = new BufferedReader(new InputStreamReader(is, "UTF-8"), 8);
                    StringBuilder sb = new StringBuilder();
                    String line = null;
                    while ((line = reader.readLine()) != null)
                    {
                        sb.append(line + "\n");
                    }
                    result = sb.toString();
                } catch (ClientProtocolException e) {
                    e.printStackTrace();
                } catch (UnsupportedEncodingException e) {
                    e.printStackTrace();
                    } catch (IOException e){
                    e.printStackTrace();
                }
                return result;
            }

            @Override
            protected void onPostExecute(String result){
                String s = result.trim();
                loadingDialog.dismiss();
                if(s.equalsIgnoreCase("success")){
                Intent intent = new Intent(Login.this, MainActivity.class);
                //intent.putExtra(USER_NAME, username);
                finish();
                startActivity(intent);
                } else {
                    Toast.makeText(getApplicationContext(), "Invalid User Name or Password", Toast.LENGTH_LONG).show();
                }
            }
        }
        LoginAsync la = new LoginAsync();
        la.execute(username, password);
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }
}

我认为如果您在emulator中运行,则“localhost/Navigation/connect.php”将不起作用,您应该使用“”,或者如果您在真实设备上运行,请确保您的移动设备和计算机都在同一网络上运行,并将url指向“”

我认为“localhost/Navigation/connect.php”如果您在emulator中运行,您应该使用“”,或者如果您在真实设备上运行,请确保您的移动设备和计算机都在同一网络上运行,并将url指向“”

调试此错误时有什么问题?调试此错误时有什么问题?我已经尝试过了,但是,这也不起作用@Minfu您确定添加了“http://”并且得到了相同的异常(IllegalStateException:目标主机不能为null,或者在参数中设置。scheme=null,host=null,path=localhost/Navigation/connect.php)我已经尝试过了,但也不起作用@minfu是否确实添加了“http://”,并且得到了相同的异常(IllegalStateException:目标主机不能为null,或在参数中设置。scheme=null,host=null,path=localhost/Navigation/connect.php)
10-11 21:03:34.430: E/AndroidRuntime(858): FATAL EXCEPTION: AsyncTask #2
10-11 21:03:34.430: E/AndroidRuntime(858): Process: com.example.navigation, PID: 858
10-11 21:03:34.430: E/AndroidRuntime(858): java.lang.RuntimeException: An error occured while executing doInBackground()
10-11 21:03:34.430: E/AndroidRuntime(858):  at android.os.AsyncTask$3.done(AsyncTask.java:300)
10-11 21:03:34.430: E/AndroidRuntime(858):  at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355)
10-11 21:03:34.430: E/AndroidRuntime(858):  at java.util.concurrent.FutureTask.setException(FutureTask.java:222)
10-11 21:03:34.430: E/AndroidRuntime(858):  at java.util.concurrent.FutureTask.run(FutureTask.java:242)
10-11 21:03:34.430: E/AndroidRuntime(858):  at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
10-11 21:03:34.430: E/AndroidRuntime(858):  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
10-11 21:03:34.430: E/AndroidRuntime(858):  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
10-11 21:03:34.430: E/AndroidRuntime(858):  at java.lang.Thread.run(Thread.java:841)
10-11 21:03:34.430: E/AndroidRuntime(858): Caused by: java.lang.IllegalStateException: Target host must not be null, or set in parameters. scheme=null, host=null, path=localhost/Navigation/connect.php
10-11 21:03:34.430: E/AndroidRuntime(858):  at org.apache.http.impl.client.DefaultRequestDirector.determineRoute(DefaultRequestDirector.java:591)
10-11 21:03:34.430: E/AndroidRuntime(858):  at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:293)
10-11 21:03:34.430: E/AndroidRuntime(858):  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
10-11 21:03:34.430: E/AndroidRuntime(858):  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
10-11 21:03:34.430: E/AndroidRuntime(858):  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
10-11 21:03:34.430: E/AndroidRuntime(858):  at com.example.navigation.Login$1LoginAsync.doInBackground(Login.java:93)
10-11 21:03:34.430: E/AndroidRuntime(858):  at com.example.navigation.Login$1LoginAsync.doInBackground(Login.java:1)
10-11 21:03:34.430: E/AndroidRuntime(858):  at android.os.AsyncTask$2.call(AsyncTask.java:288)
10-11 21:03:34.430: E/AndroidRuntime(858):  at java.util.concurrent.FutureTask.run(FutureTask.java:237)
10-11 21:03:34.430: E/AndroidRuntime(858):  ... 4 more