-4

我正在尝试在 Android Studio 上下载 android 系统映像以模拟应用程序。问题是 android studio 无法下载系统映像。查看日志后,它说我的设备上没有剩余空间,但我的笔记本电脑上还剩下 960GB。

确切的错误信息是

2017-11-28 20:32:13,136 [d thread 8]   INFO - s.RepoProgressIndicatorAdapter - Downloading https://dl.google.com/android/repository/extras/intel/addon2-1.xml   
2017-11-28 20:32:13,238 [d thread 8]   WARN - s.RepoProgressIndicatorAdapter - java.io.IOException: Cannot download 'https://dl.google.com/android/repository/extras/intel/addon2-1.xml': No space left on device, response: 200 OK

另一个重要信息是我的笔记本电脑运行的是 solus Linux。

4

1 回答 1

0

这是一个非常常见的错误。系统用作缓存的临时文件夹已满。现在,每次重新启动时都会清除 tmp。但是,Android Studio 占用了大量空间。下面,我将介绍您的选择。

如何找出 /tmp 是否是问题所在?

在终端上,键入:

df -h | grep -e 'Filesystem' -e '/tmp'

在输出中,查看“Use%”列。如果百分比很高,那么您的 tmp 空间不足。如果您进行大量编译或安装,这也将成为稍后的问题。

你有三个选择,

  1. 让 android studio 使用另一个临时文件夹
  2. 临时增加/tmp大小以完成更新或编译
  3. 一直增加/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"

最后,重新启动您的计算机。

希望这可以帮助。提供的说明由您自担风险。

于 2017-12-02T01:13:58.353 回答