【问题标题】:AndroidStudio compiling native code shows "fcntl(): Bad file descriptor"AndroidStudio 编译原生代码显示“fcntl(): Bad file descriptor”
【发布时间】:2020-10-02 11:25:07
【问题描述】:

我有一个旧版应用程序,一位开发人员在 AndroidStudio 中构建我们的原生 cpp 代码时看到了 fcntl(): Bad file descriptor。

我们的构建环境支持使用本地安装的 NDK 以及通过 AndroidStudio 从命令行构建(用于编写脚本和执行日常自动构建)。我们设置local.properties 指向本地安装的NDK。

我无法确定fcntl 错误的原因,并且在运行 NDK r17 时自己没有看到它。然后我更新到 NDK r21d(2020 年 6 月)并立即在 AndroidStudio 中看到相同的内容。

fcntl(): Bad file descriptor
[arm64-v8a] Compile++      : vhc_jnilib <= Png.cc
fcntl(): Bad file descriptor
[arm64-v8a] Compile++      : vhc_jnilib <= Jpeg.cc
fcntl(): Bad file descriptor
[arm64-v8a] Compile++      : vhc_jnilib <= MyContainer.cc
fcntl(): Bad file descriptor
[arm64-v8a] Compile++      : vhc_jnilib <= aIdentityInfo.cc
fcntl(): Bad file descriptor
[arm64-v8a] Compile++      : vhc_jnilib <= UpdateImage.cc
fcntl(): Bad file descriptor

Android Studio 4.0、MacOS Catalina 10.15.4、Gradle 6

问题:

  • 知道如何获取有关生成此警告的工具的更多信息吗?
  • 这意味着什么?能否将其静音或修复?

【问题讨论】:

  • 在此处查看相关讨论:jira.appcelerator.org/browse/TIMOB-27776
  • 这有什么更新吗?请告诉我..
  • @DeepDave 否,已更新到最新的 AndroidStudio 4.0.1,现在为 API 30 构建,但仍然看到相同的内容。
  • @spartygw 我删除了 NDK 代码。如果需要,我下次会使用 cmake
  • Anton 提到的错误,说是在 2020 年 6 月修复。Closing ticket, Fix verified SDK version 9.0.3.v20200609060523 and SDK version 9.1.0.v20200609061322 但我今天仍然收到错误。 @spartygw 你找到解决方案了吗?谢谢

标签: android android-studio android-ndk


【解决方案1】:

项目路径不能有空格。

我也遇到过同样的问题,当我把项目路径中的空格去掉后,问题就解决了。

【讨论】:

  • 谢谢,不适用于我。我的项目路径中没有空格。
  • 确保检查您的驱动器名称,我的驱动器名称中有空格。删除它,现在一切正常!
  • 2021年这怎么还是个问题!
【解决方案2】:

我遇到了同样的问题。我不确定它的实际原因是什么,但我通过删除.gradle、.cxx 和build 目录然后重建项目来解决它。

【讨论】:

  • 对我来说没有变化。您使用的是哪个版本的 AndriodStudio 和 NDK?
  • 我使用的是 Android Studio 4.1,NDK 版本:r21d (21.3.6528147),Gradle 版本:6.5,MacOS Catalina (10.15.7)。删除上述目录后,请尝试File 菜单下的invalidate caches/Restart 和Build 菜单下的Refresh Linked C++ projects?
  • 刚刚尝试了无效和刷新,但仍然看到fcntl 错误
【解决方案3】:

我在编译 tess-two 库时收到此警告已有一段时间了。我刚刚将我的 Android NDK 版本升级到最新版本 - 23.1.7779620 - 警告已经消失。因此,我建议遇到此问题的任何人都应该升级他们的 NDK。

【讨论】:

    猜你喜欢
    • 2016-06-05
    • 1970-01-01
    • 1970-01-01
    • 2018-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-16
    • 1970-01-01
    相关资源
    最近更新 更多