Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/207.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android AsyncTask doInBackground发生致命异常_Android_Android Asynctask - Fatal编程技术网

Android AsyncTask doInBackground发生致命异常

Android AsyncTask doInBackground发生致命异常,android,android-asynctask,Android,Android Asynctask,这是我的主要活动代码,但当我运行代码时,它会说不幸的是,程序已停止工作。在LogCat中显示:执行doInBackground()时出错 我回显了所有接收到的json值,所有值都被提取并添加到数组列表中 import java.util.ArrayList; import java.util.HashMap; import java.util.List; import org.apache.http.NameValuePair; import org.apache.http.message.B

这是我的主要活动代码,但当我运行代码时,它会说不幸的是,程序已停止工作。在LogCat中显示:执行doInBackground()时出错

我回显了所有接收到的json值,所有值都被提取并添加到数组列表中

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import android.app.Activity;
import android.app.Fragment;
import android.app.ProgressDialog;
import android.content.Context;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v4.util.ArrayMap;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;
import android.widget.Toast;

public class MainActivity extends Activity {


    private static final String URL="http://10.0.3.2/other";
    static String TITLE = "username";
    static String DESCIPTION = "password";



     @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
         new Getdata().execute();  
    }



     @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // TODO Auto-generated method stub
        return super.onCreateOptionsMenu(menu);

    } 

     private class  Getdata extends AsyncTask<String, Void, Void>{
         ProgressDialog pDialog;
         JSONParser jsp=new JSONParser();
         JSONObject job;
         ArrayList<HashMap<String, String>> arraylist;
         CustomAdapter adapter;

         @Override
        protected void onPreExecute() {
            // TODO Auto-generated method stub
            super.onPreExecute();
            pDialog=new ProgressDialog(MainActivity.this);
            pDialog.setIndeterminate(false);
            pDialog.setTitle("please wait");
            pDialog.setMessage("Loading");
            pDialog.show();
        }

         @Override
        protected Void doInBackground(String... params) {
            // TODO Auto-generated method stub

             List<NameValuePair> param = new ArrayList<NameValuePair>();
             param.add(new BasicNameValuePair("tag", "all"));
            job= jsp.getJSONFromUrl(URL, param);

            try{
                 JSONArray jarr= job.getJSONArray("names");

                 for (int i = 0; i < jarr.length(); i++) {
                        HashMap<String, String> map = new HashMap<String, String>();
                        job = jarr.getJSONObject(i);
                        // Retrive JSON Objects
                        map.put("username", job.getString("username"));
                        map.put("password", job.getString("password"));
                        Log.e("jsob", job.toString());
                        // Set the JSON Objects into the array
                        arraylist.add(map);

                    }

               }      catch(JSONException e){
                            e.printStackTrace();
                        }


            return null;
        }

        @Override
        protected void onPostExecute(Void result) {
            // TODO Auto-generated method stub
            super.onPostExecute(result);

            ListView lv= (ListView) findViewById(R.id.list);
            adapter = new CustomAdapter(MainActivity.this, arraylist);
            lv.setAdapter(adapter);
            pDialog.dismiss();




        }


     }

}
import java.util.ArrayList;
导入java.util.HashMap;
导入java.util.List;
导入org.apache.http.NameValuePair;
导入org.apache.http.message.BasicNameValuePair;
导入org.json.JSONArray;
导入org.json.JSONException;
导入org.json.JSONObject;
导入android.app.Activity;
导入android.app.Fragment;
导入android.app.ProgressDialog;
导入android.content.Context;
导入android.os.AsyncTask;
导入android.os.Bundle;
导入android.support.v4.util.ArrayMap;
导入android.util.Log;
导入android.view.LayoutInflater;
导入android.view.Menu;
导入android.view.MenuItem;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.AdapterView;
导入android.widget.AdapterView.OnItemClickListener;
导入android.widget.ListView;
导入android.widget.Toast;
公共类MainActivity扩展了活动{
私有静态最终字符串URL=”http://10.0.3.2/other";
静态字符串TITLE=“username”;
静态字符串description=“password”;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
//TODO自动生成的方法存根
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
新建Getdata().execute();
}
@凌驾
公共布尔onCreateOptions菜单(菜单){
//TODO自动生成的方法存根
返回super.onCreateOptions菜单(菜单);
} 
私有类Getdata扩展异步任务{
ProgressDialog;
JSONParser jsp=新的JSONParser();
JSONObject作业;
ArrayList ArrayList;
自定义适配器;
@凌驾
受保护的void onPreExecute(){
//TODO自动生成的方法存根
super.onPreExecute();
pDialog=新建进度对话框(MainActivity.this);
pDialog.setUndeterminate(假);
pDialog.setTitle(“请稍候”);
pDialog.setMessage(“加载”);
pDialog.show();
}
@凌驾
受保护的Void doInBackground(字符串…参数){
//TODO自动生成的方法存根
List param=new ArrayList();
参数添加(新的BasicNameValuePair(“标记”、“全部”);
job=jsp.getJSONFromUrl(URL,参数);
试一试{
JSONArray jarr=job.getJSONArray(“名称”);
for(int i=0;i
我知道这并不能直接解决您的问题,但我想我还是应该提一下。使用异步库可能值得一试

使用库来帮助处理异步回调对此非常有用

这是我通常使用的:

这将使用许多很酷的特性处理GET和POST请求,如自定义超时、JSON格式、onSuccess()和onFailure()方法等。这个库也有很多工作示例。我在我所有的应用程序中都使用过它,还没有遇到任何问题


希望这能有所帮助

您没有初始化
arraylist

嘿,这太棒了,但我没有足够的时间来阅读和处理它。如小时时间线,所以请如果你能看到它,给我一些更多的建议…张贴整个错误日志