Я работаю над приложением, которое использует 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, и все работает нормально.
Обратите внимание, что у затронутых телефонов есть Android 8.0 / 8.1.
Я не смог протестировать с новым Snapdragon, потому что у меня его нет на работе.
Любая помощь?
Если вам нужно больше кода или информации, пожалуйста, прокомментируйте ниже.
РЕДАКТИРОВАТЬ
ndk-стек:
Спасибо
Задача ещё не решена.
Других решений пока нет …