Android Studio 错误消息:使用未声明的标识符“accept4”

Posted

技术标签:

【中文标题】Android Studio 错误消息:使用未声明的标识符“accept4”【英文标题】:Android Studio Error Message: Use Of Undeclared Identifier 'accept4' 【发布时间】: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 找不到该功能。 【参考方案1】:

我得到通过错误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

【讨论】:

以上是关于Android Studio 错误消息:使用未声明的标识符“accept4”的主要内容,如果未能解决你的问题,请参考以下文章

Android Studio Emulator 未开始显示 AVD 已被杀死

Android Studio:我的消息未显示在我的 android 应用程序上

在 Visual Studio 中使用 C++ 类 - 未声明的标识符错误 [重复]

Android Studio Logcat 未通过 Wi-Fi 显示带有 ADB 的日志消息

在Visual Studio中使用C ++类 - 未声明的标识符错误[重复]

我在 Visual Studio C++ 中遇到这些错误:“NuovoUtente”:未声明的标识符和“CercareUtente”:未声明的标识符 [关闭]