Android Studio显示警告:inotify限制太低

31

每次启动Android Studio时都会显示一个警告。

当前inotify(7)的监视器限制过低。

我不明白这是什么意思。我应该担心吗?如何解决?

输入图像描述

5个回答

37
根据IntelliJ 文档,对于一个智能的IDE来说,了解与其一同工作的文件的任何外部更改是至关重要的,例如VCS、构建工具或代码生成器等所做的更改。出于这个原因,IntelliJ平台开启后台进程来监视此类更改。Inotify需要为项目中的每个目录设置“watch handle”。不幸的是,watch handles的默认限制可能不足以应对相当规模的项目,达到限制将迫使IntelliJ平台回退到对目录树进行递归扫描。因此,您需要添加...
fs.inotify.max_user_watches = 524288

在“/etc/sysctl.conf”中

然后运行以下命令使其生效

sudo sysctl -p

似乎它不起作用了,有其他解决方法来修复它吗? - Niral Munjariya
不要将换行符添加到 /etc/sysctl.conf 文件中,而应该添加一个新文件,例如 /etc/sysctl.d/98-inotify.conf。在重启或运行 sudo sysctl -p 命令后,您可以使用 sysctl -a 命令测试语法是否正确。 - pumpkinthehead

10

这里是简洁易懂的复制粘贴修复步骤:

  1. 只需将此多行命令复制并粘贴到您的 shell 中即可。它将创建文件 /etc/sysctl.d/android-studio.conf,在每次系统启动时应用必要的 inotify 限制:

     cat << EOF | sudo tee /etc/sysctl.d/android-studio.conf
     # Increase inotify limit, required by Android Studio, https://confluence.jetbrains.com/display/IDEADEV/Inotify+Watches+Limit
     fs.inotify.max_user_watches = 524288
     EOF
    
    重新加载您的新sysctl配置文件(以及所有其他文件):
  2.  sudo sysctl -p --system
    
  3. 重新启动 Android Studio。

为了完整起见,这里是 IntelliJ 的文档:https://confluence.jetbrains.com/display/IDEADEV/Inotify+Watches+Limit


4
我认为这是最完整的答案,因为它提供了有用的评论和新设置的文件名,而不是直接附加到 /etc/sysctl.conf。 - pumpkinthehead

8

如果您正在运行Debian(Ubuntu),RedHat或其他类似的Linux发行版,请在终端中运行以下命令:

echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

默认情况下,Listen在Linux上使用inotify来监视目录变化。你可能会遇到一个系统限制,即你可以监视的文件数量有限。例如,Ubuntu Lucid(64位)的inotify限制设置为8192。

如需更多解释,请参见此链接


3

我正在使用Ubuntu,因此这对我有效。

  1. Go to your terminal and enter

    $ sudo nano /etc/sysctl.conf  "enter your default password"
    
  2. Add fs.inotify.max_user_watches = 524288 at the bottom
  3. exit terminal and enter

    $sudo sysctl -p --system
    
  4. Restart your IDE

0

注意:您可能会在手动将监视器限制行添加到位于/etc目录下的sysctl.conf文件时遇到麻烦。如果您尝试在文本编辑器上进行编辑,在运行命令之前以root身份更安全,这将允许您对文件进行必要的调整,您可能无法这样做。

因此,请按照以下步骤增加监视器限制:

  1. 在终端中键入:gksudo gedit /etc/sysctl.conf并输入密码进行管理更改(注意:如果您使用Linux Mint Mate,请改用Pluma)
  2. 在该文本文件底部添加以下行。 fs.inotify.max_user_watches = 524288

  3. 保存文件并运行此命令以应用更改。sudo sysctl -p --system

  4. 重新启动IDE。

继续享受Android Studio吧!:)


你知道Arch Linux变体的步骤是什么吗?据我所知,他们已经弃用了sysctl.conf(https://www.archlinux.org/news/deprecation-of-etcsysctlconf/)。 - kilokahn

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接