сокет ndk не работает на snapdragon 835 - PullRequest
0 голосов
/ 24 апреля 2018

Я работаю над приложением, которое использует NDK для подключения через DRM через сокет.

file.cpp

int conSock = accept(sockd, (struct sockaddr*)&peer_name, &addrlen);

~ / AppData / Local / Android / Sdk / NDK-расслоение / SYSROOT / USR / включать / SYS / socket.h

socket.h

#ifdef __i386__
# define __socketcall extern __attribute__((__cdecl__))
#else
# define __socketcall extern
#endif

__socketcall int accept(int __fd, struct sockaddr* __addr, socklen_t* __addr_length);

#if __ANDROID_API__ >= 21
__socketcall int accept4(int __fd, struct sockaddr* __addr, socklen_t* __addr_length, int __flags) __INTRODUCED_IN(21);
#endif /* __ANDROID_API__ >= 21 */

При этом вызове приложения происходит сбой ( accept ). Отладчик не может идти дальше вызова приема (только для snapdragon 835)

Я не могу отладить внутри принять , потому что это скомпилированная библиотека (см. Выше)

Основная проблема в том, что он работает с большинством телефонов, но не с Note 8, S8, Oneplus 5, единственное, что у них общего, - это процессор. Я пробовал также разные версии Android, и все работает нормально.

NB. У затронутых телефонов есть Android 8.0 / 8.1.

Я не смог протестировать с новым Snapdragon, потому что у меня его нет на работе.

Любая помощь?

Если вам нужно больше кода или информации, пожалуйста, прокомментируйте ниже.


EDIT

ндк-стек:

enter image description here

Спасибо

...