이것은 매우 일반적인 문제입니다. 그러나 광산은 약간 다르며 다른 주제에 대한 해결책을 찾을 수 없으므로 여기에 새로운 것을 게시합니다. ListView를 보여주는 응용 프로그램이 있습니다. ListView의 각 행은 ListAdapter를 사용하여 SD 카드에서 작은 비트 맵 아이콘을로드하는 ImageView가 있습니다 (크기가 작아서 문제가 크기와 관련이 없습니다). 이제 목록을 천천히 스크롤하면 정상적으로 작동합니다. 정말 빠르게 이동하면 ListView에 충분히 긴하지만, 그것은 더 이상 아이콘을 보여주는 아니에요과 로그 캣의 메시지는 다음과 같이이다 :안드로이드 ListView OutOfMemoryError : 비트 맵 크기가 VM 예산을 초과합니다
126 600-byte external allocation too large for this process.
VM은 우리가 그런 다음 126,600 바이트
를 할당하지 않습니다
앱 크래시 및 logcat은 다음과 같이 나타 냈습니다.
java.lang.OutOfMemoryError: bitmap size exceeds VM budget
두 개의 다른 장치에서 테스트 한 결과이 중 하나만이 오류를 얻었고 다른 하나는 정상적으로 작동합니다. 이 오류는 ListView가 매우 빠르게 스크롤 될 때만 발생합니다. 새 스레드가 만들어지기 때문에 가비지 수집 속도와 일치하지 않습니까? 아무도 나에게이 상황에서 제안을 할 수 있습니까?
아래와 같이 실제로 몇 가지 숙제를 필요로하여 ImageLoader 클래스의 메소드를 교체해야 SDCard에 함께 작동합니다. –
@Paresh Mayani : 그게 무슨 뜻이야? 나는 정말 안드로이드에 익숙하다. 그래서 좀 더 구체적으로 표현해라. – user1417127
질문하기 전에, 약간의 검색을하기 전에, 이미 많은 질문이있다 : [** OutOfMemoryError : 비트 맵 크기가 VM 예산을 초과한다 **] (http :// /stackoverflow.com/search?q=OutOfMemoryError%3A+bitmap+size+exceeds+VM+budget) –