ПОВРЕЖДЕНИЕ ПАМЯТИ КУЧИ В dlmalloc или dlfree и ошибки SIGSEGV в Android ICS 4.0

Поскольку я не мог найти никого, кто сообщил бы о таком поведении, я подумал о том, чтобы опубликовать здесь проблему и свое решение, чтобы оно могло помочь другим, у кого есть эта проблема. Наше приложение отлично работало на устройствах до ICS. Мы протестировали наше приложение на Galaxy Nexus и эмуляторе ICS и увидели странные сбои процесса следующего типа:

ПОВРЕЖДЕНИЕ ПАМЯТИ КУЧИ В dlmalloc

ПОВРЕЖДЕНИЕ ПАМЯТИ КУЧИ В dlfree

сигнал 11 (SIGSEGV), адрес ошибки deadbaad

Проблема в том, что сбои происходили в нативном пространстве, поэтому не было написанного самим кодом кода, который бы влиял на него напрямую. Поскольку мы обрабатываем множество изображений в списках, и система выделяет им растровые изображения, единственное, что пришло в голову, - это некорректная обработка растровых изображений. Мы следовали всем лучшим практикам в Интернете и даже помогли сборщику мусора собрать ненужные ресурсы, вызвав bitmap.recycle () . Так или иначе, по неизвестной причине приложение постоянно вылетало на Android ICS 4.0.

12
задан AakashM 8 March 2012 в 10:55
поделиться