我正在开发一个使用NDK使用套接字连接到DRM的应用程序。
file.cpp
int conSock = accept(sockd, (struct sockaddr*)&peer_name, &addrlen);
〜/应用程序数据/本地/ 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 */
此次通话时应用程序失败(接受)。
调试器无法进一步接受调用(仅适用于snapdragon 835)
我无法调试 accept ,因为它是一个已编译的库(见上文)
主要问题是它适用于大多数手机,但不适用于笔记8,s8,Oneplus 5,它们唯一共同点就是处理器。 我也尝试过不同的Android版本,一切正常。
注意,受影响的手机有Android 8.0 / 8.1。
我无法使用较新的Snapdragon进行测试,因为我没有使用它。
任何帮助?
如果您需要更多代码或信息,请在下面发表评论。
修改
ndk-stack:
由于