我正在使用 Android NDK 构建链构建一个 C 库。一切正常,但以下部分引起了问题:
#include <netdb.h>
...
struct addrinfo* addr_result;
struct addrinfo hints;
memset(&hints, 0, sizeof(hints));
hints.ai_family = AF_INET;
hints.ai_socktype = SOCK_STREAM;
hints.ai_protocol = IPPROTO_TCP;
LOGD("host name: %s", name);
result = getaddrinfo(name, GCSL_NULL, &hints, &addr_result);
LOGD("result: %d", result);
getaddrinfo 返回错误代码 7,翻译为“EAI_NODATA”。
我尝试将“name”强制为“www.google.com”和“http://www.google.com”等简单网址,但没有任何效果。
我正在使用模拟器进行调试,该模拟器通常能够从其他应用程序连接到互联网。
最佳答案
确保您在 AndroidManifest.xml 中拥有 INTERNET 权限。
关于android - getaddrinfo() 在 Android 中失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3427202/