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