2013-01-02 3 views
1

저는 초보자 Android 개발자이며 GSON 및 AsynTask를 사용하여 RESTful 웹 서비스에서 데이터를 가져 오려고합니다. AsynTask 클래스를 포함하는 활동이 호출 될 때 그러나 내가 로그 캣에서 얻을 수있는 유일한 오류는 다음과 같습니다Android - 스택 추적 파일을 열 수 없습니다.

01-02 11 : 17 : 58.275 : E/dalvikvm (807) : 스택 추적 파일 을 열 수 없습니다 '/data/anr/traces.txt는'따라서 응답이 웹 서비스에서 가져온되지 않는 디렉토리

그리고 다음 doInBackground 메서드를 호출 할 수 없습니다입니다. 나는이 문제를 봤지만 대부분의 사람들은 permission denied 또는 뭔가를 가지고 있지만, 내 경우에는 is a directory이 아닙니다. 이 문제를 해결하는 방법에 대한 제안이 있으시면 저를 도우십시오! 사람이 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(); 
      } 
     } 
    } 

} 
+0

비동기 작업을 호출 할 때 사용한 코드를 게시 할 수 있습니까? – almuneef

+0

안녕하세요 almuneef, 방금 AsyncTask가 포함 된 전체 클래스로 게시물을 편집했습니다. 이 클래스의 핵심은 웹 서비스에서 데이터를 가져와 목록으로 표시하는 것입니다. –

답변

1

아, 스택 추적 오류에 상관없이 하지 문제 없다 밝혀 . doInBackground 메서드에서 예외를 잡을 때 오류를 인쇄하는 것을 잊어 버렸고 내가 추가했을 때 JSON 요청의 URL에 오류가 있다는 것을 알았습니다. 글쎄, 이것은 인정하기가 창피하다. 그러나 나는 그것을 어쨌든 해결했다.

+0

예, 스택 추적 권한 문제는 Android 버그보고 시스템의 버그이므로 충돌을 일으킨 원래 버그를 찾고 해결하는 것이 해결책입니다. –

관련 문제