99% что запускаете в UI-потоке.
В логе должен быть эксепшн что так делать нельзя.
Все операции с сетью делаются только в параллельном потоке. Мануалы в гугле есть, полно.
Гугл плей ВСЕГДА был помойкой. Потому что нет нормальной модерации приложений. По поводу "позволяет" - туда же - конечно позволяет - никто ж не модерирует его. Сейчас еще вроде хоть как то иногда проверяют и реагируют на жалобы - раньше было хуже.
Обрабатывайте просто тачи по активти. Преобразование координат для выяснения попали в область или нет придется делать самому.
Еще лучше - пахнет у вас какой то игрой - заюзать хотя бы Canvas.
Делайте проброс вызова метода из плюсов в джаву.
НДК не содержит и по сути не должно содержать все те же API и методы, которые содержит AndroidSDK и апишка дроида под джаву.
Про то что "под капотом обрабатывается нативным кодом" - с чего вы так решили? Вообще все в ASM в итоге преобразуется - пишите на асме, что уж там...
Да. Всегда. Потому что как только у вас идет запрос в интернеты - это другой поток. 100% - у вас по другому просто эксепшн будет - потому что вызывать из UI-потока такие вещи нельзя.
У вас скорее всего переменная timer == null на момент уничтожения окна. Вы ее точно задаете глобально? Потому что вот в onCreate у вас похоже локальная переменная.