java.io.IOException:无法下载设备

时间:2017-11-29 01:56:21

标签: android linux android-studio solus

我正在尝试在Android工作室下载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。

1 个答案:

答案 0 :(得分:0)

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

如何找出/ tmp是否有问题?

在终端上,输入:

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

在输出中,查看'使用%'柱。如果百分比很高,那么你在tmp上的空间不足。如果你进行了大量的编译或安装,这也将是一个问题。

您有三个选择,

  1. 让android studio使用另一个临时文件夹
  2. 暂时增加 / tmp 大小以完成更新或编译
  3. 始终增加 / tmp 。通常操作系统将/ tmp文件夹设置为 公羊的一半大小。我假设 / tmp 不是一个单独的 分区。
  4. 选项1。找出安装android studio的位置并修改studio.sh文件以传递变量。当android studio启动时,env变量告诉android管理器使用指定的临时文件夹。

    第1步。查找安装android studio的位置。它通常位于 / opt / android-studio 文件夹中。为了简化生活,下面将包含带有模式的文件夹目录' android-studio / bin'来自whereis -l输出。

    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,则不要继续查找其他说明。

    如果Filesystem Column是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
    ...
    

    将大小整数更改为您想要的大小。例如,用6G替换4G。

    保存&退出。在vim上,按[Esc]并输入":wq"

    最后,重新启动计算机。

    希望这会有所帮助。提供的说明由您自己承担风险。