ndk套接字在snapdragon 835上不起作用

时间:2018-04-24 13:51:12

标签: android c++ sockets android-ndk adb

我正在开发一个使用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:

enter image description here

由于

0 个答案:

没有答案