Мое приложение использует NDK (4r-crystallax в моем случае) для получения изображений с камеры. Проблема в том, что она падает после нескольких минут работы. Я предполагаю, что могут быть некоторые утечки памяти или что-то в этом роде, но я не знаю, как узнать, где проблема. Это журнал об ошибке:
04-14 23:07:37.133: INFO/NATIVE CODE(14895): Detection percentage counted.
04-14 23:07:37.163: DEBUG/MDDetectorView(14895): Some debug info
04-14 23:07:37.193: DEBUG/dalvikvm(14895): GC_EXTERNAL_ALLOC freed 19 objects / 872 bytes in 27ms
04-14 23:07:37.283: INFO/NATIVE CODE(14895): Image to proccess loaded.
04-14 23:07:37.493: INFO/ActivityManager(92): Process com.motiondetector (pid 14895) has died.
04-14 23:07:37.493: DEBUG/CameraService(67): Client::~Client E (pid 67, client 0xad08)
04-14 23:07:37.503: INFO/WindowManager(92): WIN DEATH: Window{46590698 com.motiondetector/com.motiondetector.MDMenuActivity paused=false}
04-14 23:07:37.513: ERROR/CameraService(67): getClientFromCookie: client appears to have died
Любые идеи? Есть ли полезные инструменты, которые помогут мне найти ответ?
Возможно ли, что Android убивает активность экрана во время выполнения собственного кода?
Если вы используете NDK r5 или выше, вы можете использовать ndk-gdb
script для запуска вашей программы и подключения к ней через GDB. Если ваш собственный код сбой, он должен опустить вас в командную строку GDB, где вы можете проверить область кода, которая вызывает проблему.