Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/227.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-无法打开堆栈跟踪文件_Android_Android Asynctask_Gson_Stack Trace - Fatal编程技术网

Android-无法打开堆栈跟踪文件

Android-无法打开堆栈跟踪文件,android,android-asynctask,gson,stack-trace,Android,Android Asynctask,Gson,Stack Trace,我是一名Android新手,我正在尝试使用GSON和AsynTask从RESTful web服务获取数据。但是,当调用包含AsynTask类的活动时,我在LogCat中得到的唯一错误是: 01-02 11:17:58.275:E/dalvikvm(807):无法打开堆栈跟踪文件 “/data/anr/traces.txt”:是一个目录 然后无法调用doInBackground方法,因此没有从web服务获得响应。 我在谷歌上搜索过这个问题,但是大多数人都被拒绝了权限或者别的什么,而不是像我这样的是

我是一名Android新手,我正在尝试使用GSON和AsynTask从RESTful web服务获取数据。但是,当调用包含AsynTask类的活动时,我在LogCat中得到的唯一错误是:

01-02 11:17:58.275:E/dalvikvm(807):无法打开堆栈跟踪文件 “/data/anr/traces.txt”:是一个目录

然后无法调用
doInBackground
方法,因此没有从web服务获得响应。 我在谷歌上搜索过这个问题,但是大多数人都被拒绝了
权限
或者别的什么,而不是像我这样的
是一个目录。因此,如果你对如何解决这个问题有任何建议,请帮助我

如果任何人可能要求提供包含AsynTask的类的代码,我将其包括在这里:

public class PlaceListActivity extends Activity{

    private ListView m_vwPlaceLayout;
    private ArrayList<Place> m_arrPlaceList;
    private PlaceAdapter m_placeListAdapter;

    @Override
    public void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.place_list);
        m_vwPlaceLayout = (ListView) findViewById(R.id.spotListView);
        m_arrPlaceList = new ArrayList<Place>();
        m_placeListAdapter = new PlaceAdapter(this, R.layout.place_view, m_arrPlaceList);
        m_vwPlaceLayout.setAdapter(m_placeListAdapter);
        populateList();
    }

    public void populateList(){
        Intent intent = getIntent();
        String key = intent.getStringExtra("KEYWORD");
        new GetSpots().execute(key);
    }

    private class GetSpots extends AsyncTask<String, Integer, ArrayList<Place>>{

        protected ArrayList<Place> doInBackground(String... keys){
            ArrayList<Place> list = null;
            String url = "http://10.0.2.2:81/HGourmet/getPlaces?key=" + keys[0].trim();
            try{
                RestClient client = new RestClient(url);
                try{
                    client.Execute(RequestMethod.GET);
                }catch(Exception e){
                    e.printStackTrace();
                }

                String json = client.getResponse();
                Gson gson = new Gson();
                Type listType = new TypeToken<ArrayList<Place>>(){}.getType();
                list = gson.fromJson(json, listType);
            }catch(Exception e){}
            return list;
        }

        protected void onProgressUpdate(Integer... progress){

        }

        protected void onPreExecute(){

        }

        protected void onPostExecute(ArrayList<Place> placeList){
            if (placeList != null){
                for (Place place : placeList){
                    m_arrPlaceList.add(place);
                }
                m_placeListAdapter.notifyDataSetChanged();
            }
            else{
                Toast.makeText(PlaceListActivity.this, "No Results!", Toast.LENGTH_LONG).show();
            }
        }
    }

}
公共类PlaceListActivity扩展活动{
私有ListView m_布局;
私人ArrayList m_arrPlaceList;
私人配售适配器m_placeListAdapter;
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.place_列表);
m_vwPlaceLayout=(ListView)findViewById(R.id.spotListView);
m_arrPlaceList=新的ArrayList();
m_placeListAdapter=新的PlaceAdapter(此,R.layout.place_视图,m_arrPlaceList);
m_vwPlaceLayout.setAdapter(m_placeListAdapter);
大众主义者();
}
公共无效公共列表(){
Intent=getIntent();
字符串键=intent.getStringExtra(“关键字”);
新建GetSpots().execute(键);
}
私有类GetTask{
受保护的ArrayList doInBackground(字符串…键){
ArrayList list=null;
字符串url=”http://10.0.2.2:81/HGourmet/getPlaces?key=“+键[0]。修剪();
试一试{
RestClient=新的RestClient(url);
试一试{
client.Execute(RequestMethod.GET);
}捕获(例外e){
e、 printStackTrace();
}
字符串json=client.getResponse();
Gson Gson=新的Gson();
类型listType=newTypeToken(){}.getType();
list=gson.fromJson(json,listType);
}捕获(例外e){}
退货清单;
}
受保护的void onProgressUpdate(整数…进度){
}
受保护的void onPreExecute(){
}
PostExecute上受保护的void(ArrayList placeList){
if(placeList!=null){
for(地点:地点列表){
m_arrrplacelist.add(place);
}
m_placeListAdapter.notifyDataSetChanged();
}
否则{
Toast.makeText(PlaceListActivity.this,“无结果!”,Toast.LENGTH_LONG.show();
}
}
}
}

哦,不管何时显示,堆栈跟踪错误都不是问题所在。我注意到在
doInBackground
方法中捕获异常时忘记打印错误,添加异常时,我发现错误在于JSON请求的URL。嗯,承认这一点很尴尬,但我还是解决了它。

哦,原来堆栈跟踪错误是而不是问题,无论何时显示。我注意到在
doInBackground
方法中捕获异常时忘记打印错误,添加异常时,我发现错误在于JSON请求的URL。嗯,承认这一点很尴尬,但我还是解决了。

你能发布你用来调用async taskHi Almunef的代码吗?我刚刚用包含AsyncTask的整个类编辑了我的帖子。这个类的目的是从web服务获取数据,并将它们显示为列表。您可以发布用于调用async taskHi almuneef的代码吗?我刚刚用包含AsyncTask的整个类编辑了我的帖子。这个类的目的是从web服务获取数据并将其显示为列表。是的,堆栈跟踪权限问题是Android bug报告系统中的一个bug-因此您的解决方案是找到并修复导致崩溃的原始bug。是的,堆栈跟踪权限问题是Android bug报告系统中的一个bug,因此您的解决方案是查找并修复导致崩溃的原始bug。