2012-01-24 2 views
0
나는 시도하고 다음과 같이 URL에서 이미지를 다운로드 상당히 '표준'코드를 사용하고

:Bitmapfactory 오류

Bitmap bitmap = BitmapFactory.decodeByteArray(bytes, 0, bytes.length); 

이에 점프 :

private Bitmap downloadBitmap(String url){ 

     try{ 
     HttpUriRequest request = new HttpGet(url); 
     HttpClient httpClient = new DefaultHttpClient(); 
     HttpResponse response = httpClient.execute(request); 

     StatusLine statusLine = response.getStatusLine(); 
     int statusCode = statusLine.getStatusCode(); 
     if (statusCode == 200) { 
      HttpEntity entity = response.getEntity(); 
      byte[] bytes = EntityUtils.toByteArray(entity); 

      Bitmap bitmap = BitmapFactory.decodeByteArray(bytes, 0, bytes.length); 
      return bitmap; 
     } else { 
      return null; 
     } 
     } catch (Exception e){ 
      e.printStackTrace(); 
      return null; 

     } 
    } 
} 

이이 줄에서 실패 catch 블록.

Eclipse에서 디버그를 사용하면 ok로 실행되는 것으로 보이며 변수 'bytes'에 여러 가지 요소가있는 것으로 보이며 전달하는 URL에 브라우저의 이미지가 표시됩니다.

누구든지이 문제가 무엇인지 제안 할 수 있으며, 더 중요한 것은 어떻게 직접 디버깅 할 수 있습니까 (Eclipse, Java, Android의 새로운 기능)? 예를 들어 e.printStackTrace()로 무엇을해야할지 모르겠습니다. 내가 실제로 (인터넷 검색을 많이에도 불구하고) 뭔가를 볼 수 있도록, 이클립스 콘솔에서 로그 캣에 표시 아무것도 아무것도 당신이 해독하려고하는 이미지 색상 프로파일을 포함하지 않는 것이

감사

+1

창 -> show view -> LogCat로 이동하여 Log 또는 printStackTrace와 같은 호출의 결과를 확인합니다. stacktrace에서 어떤 예외가 발생했는지, 어떤 예외가 있었는지 등 많은 정보를 볼 수 있습니다. 이 정보를 통해 귀하 (또는 우리)가 실제 원인이 무엇인지 쉽게 찾아 낼 수 있습니다. – Jave

+0

LogCat에는 오류 정보가 없으며 문제를 지적하거나 Eclipse 오류 로그 또는 Eclipse 콘솔이 없습니다. – Mitch

+0

그렇다면 catch-block으로 끝나는 것은 무엇입니까? 또한 LogCat에 오류를 차단하는 활성 필터가 없는지 확인하십시오. – Jave

답변

0

확인이 없습니다 . 그것은 나에게 일어났다. BitmapFactory는 의미있는 오류없이 오류 및 충돌을 처리하는 방법을 알지 못합니다.

컬러 프로필을 확인하려면 포토샵이있는 경우 열려고하면 컬러 프로필로 수행 할 작업을 묻는 화면이 나타날 수 있습니다. 또는 Mac에서 파일을 마우스 오른쪽 버튼으로 클릭하고 "추가 정보"를 선택하면 색상 프로파일 라인을 볼 수 있습니다.

+0

색상 프로파일처럼 보이는 부분이 보이지 않습니다. 또한 jpg 및 png 이미지에서 시도해 보았습니다. 그것들의? – Mitch

+0

컬러 프로파일 라인이 보이지 않는다면 아마 같은 문제가 아닐 것입니다. 그러나 동일한 증상이 있었고 이것이 해결 되었기 때문에 나는 안으로 들어와야했습니다. – Yahel

+0

의견을 보내 주셔서 감사합니다! – Mitch

0

디버거는 일반적으로 return 문으로 이동하지만 실행되지는 않습니다 ... 일반 함수로 시도 할 수 있습니다 ... 예외가있는 경우 가장 좋은 방법은 일부를 인쇄하는 것입니다 catch 블록 내부에 기록됩니다.