Android Studio 错误消息:使用未声明的标识符 'accept4'
Android Studio Error Message: Use Of Undeclared Identifier 'accept4'
jni 文件夹 未出现在 android studio 中,仅在构建后 java文件夹获取build.
如您所见,jni 文件夹 出现在 explorer 但不在 android studio.
编辑:
所以在我把这个添加到我的 build.gradle
之后
externalNativeBuild {
ndkBuild {
path 'src/main/jni/Android.mk'
}
}
jni 文件夹 显示为 cpp 文件夹名称
但是当我编译时,我从 SocketServer.cpp:
得到 这个错误
use of undeclared identifier 'accept4'
这是代码:
bool SocketServer::Accept() {
if ((acceptfd = accept4(listenfd, nullptr, nullptr, SOCK_CLOEXEC)) < 0) {
Close();
return false;
}
return true;
}
和headers已经是includes:
#include <sys/types.h>
#include <sys/socket.h>
我得到通过错误“use of undeclared identifier 'accept4'
”通过设置这些:
from compileSdkVersion 29 to compileSdkVersion 30
from buildToolsVersion "29.0.3" to buildToolsVersion "30.0.3"
from minSdkVersion 21 to minSdkVersion 22
from targetSdkVersion 29 to targetSdkVersion 30
jni 文件夹 未出现在 android studio 中,仅在构建后 java文件夹获取build.
如您所见,jni 文件夹 出现在 explorer 但不在 android studio.
编辑: 所以在我把这个添加到我的 build.gradle
之后externalNativeBuild {
ndkBuild {
path 'src/main/jni/Android.mk'
}
}
jni 文件夹 显示为 cpp 文件夹名称 但是当我编译时,我从 SocketServer.cpp:
得到 这个错误use of undeclared identifier 'accept4'
这是代码:
bool SocketServer::Accept() {
if ((acceptfd = accept4(listenfd, nullptr, nullptr, SOCK_CLOEXEC)) < 0) {
Close();
return false;
}
return true;
}
和headers已经是includes:
#include <sys/types.h>
#include <sys/socket.h>
我得到通过错误“use of undeclared identifier 'accept4'
”通过设置这些:
from compileSdkVersion 29 to compileSdkVersion 30
from buildToolsVersion "29.0.3" to buildToolsVersion "30.0.3"
from minSdkVersion 21 to minSdkVersion 22
from targetSdkVersion 29 to targetSdkVersion 30