java.io.IOException: Невозможно загрузить Нет свободного места на устройстве

Я пытаюсь загрузить образ системы Android на Android-студии, чтобы эмулировать приложения. Проблема в том, что Android Studio не может загрузить образ системы. Посмотрев журнал, он говорит, что на моем устройстве не осталось места, но на моем ноутбуке осталось 960 ГБ.

Точное сообщение об ошибке

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

Еще одна важная информация - мой ноутбук работает под управлением Linux.

1 ответ

Это очень распространенная ошибка. Ваша временная папка, которую ваша система использует в качестве кеша, заполнена. Теперь tmp очищается при каждой перезагрузке. Тем не менее, Android Studio использует много места. Ниже я перейду к вашим вариантам.

Как узнать, является ли проблема /tmp?

На терминале введите:

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

На выходе посмотрите на столбец "Использовать%". Если процент высокий, значит, вам не хватает места на tmp. Если вы много компилируете или инсталлируете, это будет проблемой позже.

У вас есть три варианта,

  1. Заставьте андроид студию использовать другую временную папку
  2. Временно увеличьте размер /tmp для завершения обновлений или компиляции
  3. Увеличение / TMP все время. Обычно ОС устанавливает для папки /tmp половину размера оперативной памяти. Я предполагаю, что /tmp не является отдельным разделом.

Вариант 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. Используйте директорию, чтобы открыть файл studio.sh с помощью vim. Обычно это /opt/android-manager/bin/studio.sh

sudo vim $DROID_BIN/studio.sh

Шаг 3. Скопируйте и вставьте следующие строки в начало studio.sh. Я добавил комментарии в качестве напоминания, если вы когда-нибудь взгляните на это в будущем.

На Vim нажмите [i] для редактирования. Скопируйте из браузера с помощью [Ctrl] + [c] и вставьте в vim с помощью клавиш [ Ctrl] + [Shift] + [v].

# _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'

На выходе посмотрите на колонку Файловая система. Если эта файловая система отображает обратную косую черту, за которой следуют три буквы, такие как / 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"

Наконец, перезагрузите компьютер.

Надеюсь это поможет. Инструкции предоставляются на ваш страх и риск.

Другие вопросы по тегам