【发布时间】:2022-01-10 04:20:33
【问题描述】:
jni 文件夹不会出现在 android studio 中,并且仅在构建后 java 文件夹获取构建。
如您所见,jni 文件夹 出现在 explorer 中,但未出现在 android studio 中。
编辑: 所以在我将它添加到我的 build.gradle 之后
externalNativeBuild {
ndkBuild {
path 'src/main/jni/Android.mk'
}
}
jni 文件夹显示为 cpp 文件夹名称 但是当我编译时,我从 SocketServer.cpp 得到 这个错误:
使用未声明的标识符“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>
【问题讨论】:
-
“添加 C/C++ 自然”选项是否可用?
-
“这是我要在github上编译的源代码”。问题应该是独立的。将相关代码放在问题本身中。 “使用未声明的标识符‘accept4’”。听起来您可能正在构建一个非常旧的 Android 版本。
-
迈克尔 minSdkVersion 14 , targetSdkVersion 29 , compileSdkVersion 29
-
sdk 版本 14 是 Android 4.0,此时已经有十年了。
-
@Botje 我已经更改为 sdk 29 但错误仍然存在“使用未声明的标识符 'accept4'”是 ndk 版本的错误,或者是因为 android studio 找不到该功能。
标签: android c++ gradle java-native-interface .so