Java 致命异常异步任务#2我做错了什么?

Java 致命异常异步任务#2我做错了什么?,java,android,Java,Android,我有一个查找VIN的php/mysql查询,如果VIN在数据库中,它会返回“VIN已存在”,我在这个错误报告中哪里出错了:错误报告说Fatal Exception:AsyncTask#2(我有一些代码实际上可以解决这个问题,当我试图在启动Sell页面之前重写它以运行php checkVin时,问题就开始了) 11-21 16:34:43.736:E/AndroidRuntime(725):致命异常:AsyncTask#2 11-21 16:34:43.736:E/AndroidRuntime(7

我有一个查找VIN的php/mysql查询,如果VIN在数据库中,它会返回“VIN已存在”,我在这个错误报告中哪里出错了:错误报告说
Fatal Exception:AsyncTask#2
(我有一些代码实际上可以解决这个问题,当我试图在启动Sell页面之前重写它以运行php checkVin时,问题就开始了)

11-21 16:34:43.736:E/AndroidRuntime(725):致命异常:AsyncTask#2
11-21 16:34:43.736:E/AndroidRuntime(725):java.lang.RuntimeException:执行doInBackground()时出错
11-21 16:34:43.736:E/AndroidRuntime(725):在android.os.AsyncTask$3.done(AsyncTask.java:299)
11-21 16:34:43.736:E/AndroidRuntime(725):位于java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
11-21 16:34:43.736:E/AndroidRuntime(725):在java.util.concurrent.FutureTask.setException(FutureTask.java:124)
11-21 16:34:43.736:E/AndroidRuntime(725):在java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
11-21 16:34:43.736:E/AndroidRuntime(725):在java.util.concurrent.FutureTask.run(FutureTask.java:137)
11-21 16:34:43.736:E/AndroidRuntime(725):在android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
11-21 16:34:43.736:E/AndroidRuntime(725):位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
11-21 16:34:43.736:E/AndroidRuntime(725):位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
11-21 16:34:43.736:E/AndroidRuntime(725):在java.lang.Thread.run(Thread.java:856)
11-21 16:34:43.736:E/AndroidRuntime(725):由以下原因引起:java.lang.IllegalArgumentException:主机名不能为null
11-21 16:34:43.736:E/AndroidRuntime(725):位于org.apache.http.HttpHost.(HttpHost.java:83)
11-21 16:34:43.736:E/AndroidRuntime(725):位于org.apache.http.impl.client.AbstractHttpClient.DeterminateTarget(AbstractHttpClient.java:497)
11-21 16:34:43.736:E/AndroidRuntime(725):位于org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:626)
11-21 16:34:43.736:E/AndroidRuntime(725):位于org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:616)
11-21 16:34:43.736:E/AndroidRuntime(725):在com.mobile.donswholesale.Scan.getServerResopnse(Scan.java:272)
11-21 16:34:43.736:E/AndroidRuntime(725):在com.mobile.donswholesale.Scan.access$1(Scan.java:260)
11-21 16:34:43.736:E/AndroidRuntime(725):在com.mobile.donswholesale.Scan$4.doInBackground(Scan.java:240)
11-21 16:34:43.736:E/AndroidRuntime(725):在com.mobile.donswholesale.Scan$4.doInBackground(Scan.java:1)
11-21 16:34:43.736:E/AndroidRuntime(725):在android.os.AsyncTask$2.call(AsyncTask.java:287)
11-21 16:34:43.736:E/AndroidRuntime(725):在java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
11-2116:34:43.736:E/AndroidRuntime(725):…还有5个

private void addSellButtonListener(){
按钮销售=(按钮)findViewById(R.id.sell\u按钮);
sell.setOnClickListener(新的OnClickListener(){
公共void onClick(视图v){
sendDatatoServer();
}
});
}
私有字符串格式DataAsJason(){
JSONObject root=新的JSONObject();
试一试{
root.put(“User”,userId.getText().toString());
root.put(“Pword”,userPass.getText().toString());
root.put(“VIN”,VINID.getText().toString());
返回root.toString();
}捕获(JSONException e){
d(“JWP”,“无法格式化JSON”);
}
返回null;
}
私有void sendDatatoServer(){
最后一个字符串json=formatDataAsJASON();
新建异步任务(){
@凌驾
受保护字符串doInBackground(无效…参数){
返回getServerResopnse(json);
}
@凌驾
受保护的void onPostExecute(字符串结果){
如果(结果==“VIN已存在”){
Toast.makeText(Scan.this,
getString(R.string.vin_存在),Toast.LENGTH_LONG)
.show();
最终意图i=新意图(Scan.this,Scan.class);
星触觉(i);
}否则{
StartSell();
}
}
}.execute();
}
私有字符串getServerResopnse(字符串json){
HttpPost=newhttppost(“http://”+serverIp.getText().toString())
+“/chekVIN.php”);
试一试{
StringEntity=新的StringEntity(json);
后设实体(实体);
setHeader(“内容类型”、“应用程序/json”);
DefaultHttpClient=新的DefaultHttpClient();
BasicResponseHandler=新的BasicResponseHandler();

字符串响应=client.execute(post,handler); 返回响应; }捕获(不支持的编码异常e){ Log.d(“JWP”,e.toString()); }捕获(客户端协议例外e){ Log.d(“JWP”,e.toString()); }捕获(IOE异常){ Log.d(“JWP”,e.toString()); } 返回null; } 私有void StartSell(){ 最终意图i=新意图(Scan.this,Sell.class); EditText EditText=(EditText)findViewById(R.id.VIN); String text=editText.getText().toString(); EditText editText2=(EditText)findViewById(R.id.Make); 字符串text2=editText2.getText().toString(); EditText editText3=(EditText)findViewById(R.id.Model); 字符串text3=editText3.getText().toString(); EditText editText4=(EditText)findViewById(R.id.Color); 字符串text4=editText4.getText().toString(); EditText editText5=(EditText)findViewById(R.id.Year); 字符串text5=editText5.getText().toString(); 试一试{ FileOutputStream fos=openFileOutput(VinHolder, 上下文。模式(私人); fos.write(text.getBytes()); fos.close(); FileOutputStream fos2=openFileOutput(MakeHolder, 上下文。模式(私人); write(text2.getBytes()); fos2.close(); 列队
11-21 16:34:43.736: E/AndroidRuntime(725): FATAL EXCEPTION: AsyncTask #2
11-21 16:34:43.736: E/AndroidRuntime(725): java.lang.RuntimeException: An error occured while executing doInBackground()
11-21 16:34:43.736: E/AndroidRuntime(725):  at android.os.AsyncTask$3.done(AsyncTask.java:299)
11-21 16:34:43.736: E/AndroidRuntime(725):  at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
11-21 16:34:43.736: E/AndroidRuntime(725):  at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
11-21 16:34:43.736: E/AndroidRuntime(725):  at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
11-21 16:34:43.736: E/AndroidRuntime(725):  at java.util.concurrent.FutureTask.run(FutureTask.java:137)
11-21 16:34:43.736: E/AndroidRuntime(725):  at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
11-21 16:34:43.736: E/AndroidRuntime(725):  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
11-21 16:34:43.736: E/AndroidRuntime(725):  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
11-21 16:34:43.736: E/AndroidRuntime(725):  at java.lang.Thread.run(Thread.java:856)
11-21 16:34:43.736: E/AndroidRuntime(725): Caused by: java.lang.IllegalArgumentException: Host name may not be null
11-21 16:34:43.736: E/AndroidRuntime(725):  at org.apache.http.HttpHost.<init>(HttpHost.java:83)
11-21 16:34:43.736: E/AndroidRuntime(725):  at org.apache.http.impl.client.AbstractHttpClient.determineTarget(AbstractHttpClient.java:497)
11-21 16:34:43.736: E/AndroidRuntime(725):  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:626)
11-21 16:34:43.736: E/AndroidRuntime(725):  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:616)
11-21 16:34:43.736: E/AndroidRuntime(725):  at com.mobile.donswholesale.Scan.getServerResopnse(Scan.java:272)
11-21 16:34:43.736: E/AndroidRuntime(725):  at com.mobile.donswholesale.Scan.access$1(Scan.java:260)
11-21 16:34:43.736: E/AndroidRuntime(725):  at com.mobile.donswholesale.Scan$4.doInBackground(Scan.java:240)
11-21 16:34:43.736: E/AndroidRuntime(725):  at com.mobile.donswholesale.Scan$4.doInBackground(Scan.java:1)
11-21 16:34:43.736: E/AndroidRuntime(725):  at android.os.AsyncTask$2.call(AsyncTask.java:287)
11-21 16:34:43.736: E/AndroidRuntime(725):  at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
11-21 16:34:43.736: E/AndroidRuntime(725):  ... 5 more
private void addSellButtonListener() {
    Button sell = (Button) findViewById(R.id.sell_button);
    sell.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            sendDatatoServer();
        }
    });
}
private String formatDataAsJASON() {
    JSONObject root = new JSONObject();
    try {
        root.put("User", userId.getText().toString());
        root.put("Pword", userPass.getText().toString());
        root.put("VIN", VINID.getText().toString());
        return root.toString();
    } catch (JSONException e) {
        Log.d("JWP", "Can't format JSON");
    }
    return null;
}
private void sendDatatoServer() {
    final String json = formatDataAsJASON();
    new AsyncTask<Void, Void, String>() {
        @Override
        protected String doInBackground(Void... params) {
            return getServerResopnse(json);
        }
        @Override
        protected void onPostExecute(String result) {
            if (result == "VIN already exists") {
                Toast.makeText(Scan.this,
                        getString(R.string.vin_exists), Toast.LENGTH_LONG)
                        .show();
                final Intent i = new Intent(Scan.this, Scan.class);
                startActivity(i);
            } else {
                StartSell();
            }
        }
    }.execute();
}
private String getServerResopnse(String json) {
    HttpPost post = new HttpPost("http://" + serverIp.getText().toString()
            + "/chekVIN.php");
    try {
        StringEntity entity = new StringEntity(json);
        post.setEntity(entity);
        post.setHeader("Content-type", "application/json");
        DefaultHttpClient client = new DefaultHttpClient();
        BasicResponseHandler handler = new BasicResponseHandler();
        String response = client.execute(post, handler);
        return response;
    } catch (UnsupportedEncodingException e) {
        Log.d("JWP", e.toString());

    } catch (ClientProtocolException e) {
        Log.d("JWP", e.toString());
    } catch (IOException e) {
        Log.d("JWP", e.toString());
    }
    return null;
}
private void StartSell() {
    final Intent i = new Intent(Scan.this, Sell.class);
    EditText editText = (EditText) findViewById(R.id.VIN);
    String text = editText.getText().toString();
    EditText editText2 = (EditText) findViewById(R.id.Make);
    String text2 = editText2.getText().toString();
    EditText editText3 = (EditText) findViewById(R.id.Model);
    String text3 = editText3.getText().toString();
    EditText editText4 = (EditText) findViewById(R.id.Color);
    String text4 = editText4.getText().toString();
    EditText editText5 = (EditText) findViewById(R.id.Year);
    String text5 = editText5.getText().toString();
    try {
        FileOutputStream fos = openFileOutput(VinHolder,
                Context.MODE_PRIVATE);
        fos.write(text.getBytes());
        fos.close();
        FileOutputStream fos2 = openFileOutput(MakeHolder,
                Context.MODE_PRIVATE);
        fos2.write(text2.getBytes());
        fos2.close();
        FileOutputStream fos3 = openFileOutput(ModelHolder,
                Context.MODE_PRIVATE);
        fos3.write(text3.getBytes());
        fos3.close();
        FileOutputStream fos4 = openFileOutput(ColorHolder,
                Context.MODE_PRIVATE);
        fos4.write(text4.getBytes());
        fos4.close();
        FileOutputStream fos5 = openFileOutput(YearHolder,
                Context.MODE_PRIVATE);
        fos5.write(text5.getBytes());
        fos5.close();
    }
    catch (Exception e) {
        Log.d("DEBUGTAG", "File Not Saved" + text);
        e.printStackTrace();
    }
    startActivity(i);
}