这是一个非常常见的错误。系统用作缓存的临时文件夹已满。现在,每次重新启动时都会清除 tmp。但是,Android Studio 占用了大量空间。下面,我将介绍您的选择。
如何找出 /tmp 是否是问题所在?
在终端上,键入:
df -h | grep -e 'Filesystem' -e '/tmp'
在输出中,查看“Use%”列。如果百分比很高,那么您的 tmp 空间不足。如果您进行大量编译或安装,这也将成为稍后的问题。
你有三个选择,
- 让 android studio 使用另一个临时文件夹
- 临时增加/tmp大小以完成更新或编译
- 一直增加/tmp。通常操作系统将 /tmp 文件夹设置为内存大小的一半。我假设/tmp不是一个单独的分区。
选项 1.找出 android studio 的安装位置并修改 studio.sh 文件以传递变量。当 android studio 启动时,env 变量告诉 android manager 使用指定的临时文件夹。
步骤 1.找到 android studio 的安装位置。它通常位于/opt/android-studio文件夹中。为了简单起见,以下将包含来自 whereis -l 输出的模式为“android-studio/bin”的文件夹目录。
DROID_BIN=$(whereis -l android-studio | grep 'android-studio/bin' | awk -F'bin: ' '{print $2}')
步骤 2.使用目录用 vim打开'studio.sh'文件。通常,这是 /opt/android-manager/bin/studio.sh
sudo vim $DROID_BIN/studio.sh
步骤 3.复制以下行并将其粘贴到 studio.sh 的开头。如果您在将来的某个日期查看它,我添加了评论作为提醒。
在 Vim 上按[i]进行编辑。使用[Ctrl] + [c]从浏览器复制并使用 [ Ctrl] + [Shift] + [v]键粘贴到 vim 。
# _JAVA_OPTIONS was added to replace /tmp folder because it runs out of
# space and causes failure with android studio updates.
export _JAVA_OPTIONS=-Djava.io.tmpdir=/shared/tmp
按[Esc]保存并退出,然后键入":wq"
启动 android studio 并再次尝试更新。这一次,更新应该是成功的。
对于选项 2 和 3检查 /tmp 并确保它不是单独的分区。
df -h | grep -e 'Filesystem' -e '/tmp'
在输出中,查看 Filesystem 列。如果该文件系统显示一个反斜杠,后跟三个字母,如 /sda 或 /sdb,则不要继续并寻找其他说明。
如果文件系统列是 tempfs 然后继续...
选项 2.临时增加 /tmp 的大小。
sudo mount -o remount,size=6G,noatime /tmp
而已。完毕。
选项 3.一直增加 /tmp 的大小。如果您在多个程序或活动中反复看到“无空间错误”,这很有用。
步骤 1. 备份 fstab。
cp /etc/fstab ~/fstab_BACKUP
步骤 2. 检查您是否有“tmpfs /tmp”的现有条目
cat /etc/fstab | grep tmp
步骤 3.如果终端上没有返回任何内容,则粘贴以下行。将 6G 更改为 /tmp 所需的大小。
sudo sed -i '$a tmpfs /tmp tmpfs rw,nodev,nosuid,size=6G 0 0' /etc/fstab
如果您有现有条目,请使用 vim 或任何终端文本编辑器手动更改驱动器的大小。
sudo vim /etc/fstab
你会看到类似这样的东西:
------------/etc/fstab----------------------
...
tmpfs /tmp tmpfs rw,nodev,nosuid,size=4G 0 0
...
将大小整数更改为您想要的大小。例如,将 4G 替换为 6G。
保存并退出。在 vim 上,按 [Esc] 并输入 ":wq"
最后,重新启动您的计算机。
希望这可以帮助。提供的说明由您自担风险。