У меня странная проблема, когда я запускаю свое приложение на Nexus One, Android 2.2.В своем приложении я использовал собственный .so lib, созданный под NDK.В коде Java у меня есть 2 потока: один поток пользовательского интерфейса, один для запуска кодов из native, так lib, а затем обновляет пользовательский интерфейс данными результата.В коде C ++ у меня есть глобальная переменная «int count», которая записывает время, когда вызывается определенный метод «myMethod», и число увеличивается на единицу каждый раз, когда вызывается «myMethod».Когда я запускаю свое приложение в Nexus One с Android 2.2, возникает странная проблема.В моем журнале счетчик равен 1, 2, 3, а затем появляется сообщение «08-24 12: 32: 57.961: DEBUG / dalvikvm (19244): GC_FOR_MALLOC освободил 267 объектов / 13712 байт за 48 мс».После этого события GC_FOR_MALLOC мой счетчик сбрасывается, снова начиная с 1, а затем 2, 3, 4 ... Затем кажется, что есть 2 потока, выполняющих один и тот же "myMethod", каждый выводит свою собственную трассировку, смешанную друг с другомотслеживать случайно.Например, трассировка может быть
1, 2, 3, GC_FOR_MALLOC, 1, 2, 3, 4, 5, GC_FOR_MALLOC, 4, 5, 6, GC_FOR_MALLOC, 6, 7...
Когда я запускаю одно и то же приложение с точно таким же кодом на Android Emulator, 2.1 или 2.2, проблема никогда не обнаруживалась, и в эмуляторе нет события GC_FOR_MALLOC.
Кто-нибудь сталкивался с этой проблемой раньше?Спасибо за вашу помощь!