Решение ошибки INSTALL_FAILED_INSUFFICIENT_STORAGE на Android [закрыто]


525

INSTALL_FAILED_INSUFFICIENT_STORAGEОшибка отрава жизни каждого Android разработчика. Это происходит независимо от размера приложения или объема доступной памяти. Перезагрузка целевого устройства на короткое время решает проблему, но вскоре возвращается. Существуют сотни (если не тысячи) сообщений на доске объявлений от людей, спрашивающих, почему возникает проблема, но люди в Google разочарованно молчат об этой проблеме.

Есть простой обходной путь. Если ваше тестовое устройство работает под управлением Android 2.2 или более поздней версии, добавьте android:installLocationатрибут в файл манифеста приложения со значением "preferExternal". Это приведет к установке приложения на внешнюю память устройства, например на SD-карту телефона.

Например:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.andrewsmith.android.darkness"
          android:installLocation="preferExternal"

Это скорее пластырь, чем исправление, и, возможно, он не идеален, если вы хотите, чтобы ваше законченное приложение было установлено во внутренней памяти устройства. Но это по крайней мере сделает процесс разработки намного менее расстраивающим.


это будет работать для Android API уровня 4 или 1.6?
МАК

я получил это сообщение в файле манифеста: -> ошибка: не найден идентификатор ресурса для атрибута 'installLocation' в пакете 'android'
Справка

1
@AndrewSmith: не могли бы вы ответить на ваш вопрос? Просто наткнулся на этот вопрос во время обзора, потому что он помечен как не реальный вопрос . Хотя флаг в основном правильный, было бы стыдно, если решение будет потеряно.
Eckes

Первое, что нужно сделать: выяснить, действительно ли проблема связана с пространством! Смотрите мой ответ на этот вопрос для деталей.
Роберт Симер

1
У меня была эта ошибка на эмуляторе Android. В андроид студии - AVD manager, есть возможность стереть данные на конкретном устройстве. Это
решило

Ответы:


178

Это только временное решение, а не реальное исправление.

После того, как это случилось со мной и я не был доволен текущими ответами, я начал работать, пытаясь выяснить это из источника AOSP. Я нашел РЕАЛЬНОЕ решение.

объяснение

Прежде всего, немного (упрощенно) предыстории того, как Android устанавливает и обновляет

Первый раз приложение установлено:

  1. APK файл сохраняется как

    /data/app/<full.package.name>-1.apk  (1.apk)

Когда приложение должно быть обновлено:

  1. Обновленный файл APK сохраняется как:

    /data/app/<full.package.name>-2.apk (2.apk)
  2. Первая версия (1.apk) удаляется.

На нашем следующем обновлении (ях):

  1. Новый APK сохраняется как (1.apk), а (2.apk) удаляется (повторяется вечно).

 

Проблема, с которой сталкивается большинство из нас, возникает при обновлении приложения, но удаление старого APK не удается. Что само по себе еще не приводит к сбою обновления, но приводит к тому, что в нем есть два APK-файла /data/app.

В следующий раз, когда вы попытаетесь обновить приложение, система не сможет переместить его временный файл, поскольку ни (1.apk), ни (2.apk) не пусты. Поскольку File # renameTo (File) не генерирует исключение, а возвращает логический PackageManager, у него нет никакого способа узнать, почему он возвращает INSTALL_FAILED_INSUFFICIENT_STORAGE, даже если ошибка не имеет никакого отношения к количеству свободного места.

Решение

Запустить:

adb shell "pm uninstall <full.packge.name>"
adb shell "rm -rf /data/app/<full.package.name>-*"

ИЛИ

Удалить приложение

Используйте ваш любимый метод для удаления ОБА :

/data/app/<full.package.name>-1.apk

/data/app/<full.package.name>-2.apk

Убедитесь, что ничто другое не блокирует будущие установки таким же образом. В моем случае у меня был /data/app-lib/<full.package.name>-1каталог, задерживающийся вокруг! В этом случае сработала установка на SD-карту и последующий переход на внутреннюю память. (Создание /data/app-lib/<full.package.name>без -1окончания.)

Почему другие "решения" работали

  • Код для установки на внешнее хранилище значительно отличается, что не имеет те же проблемы

  • При удалении приложения удаляется только одна версия файла APK в /data/app. Вот почему вы можете переустановить его один раз, но не обновлять.

  • Количество свободного места в эмуляторе не имеет значения при возникновении этой ошибки.


9
@ Msmit1993, у вас нет доступа к каталогу данных на некорневом устройстве. Наличие SDK и ADB не имеет значения.
Стан

3
Для действительно ленивых, вот фрагмент bash: function fix_app { adb shell "pm uninstall ${1}; rm -rf /data/app/${1}-*; su -c 'rm -rf /data/app-lib/${1}-*'" } $ fix_app com.facebook.katana
gnmerritt

1
Я тоже пытался android:installLocation="preferExternal"но все напрасно, в моем случае ничего не работает. Я использую реальное устройство для тестирования. Какое решение в этом случае?
Рам Патра

1
Я должен был очистить/data/local/tmp
18446744073709551615

1
В моем случае я добавляю для установки приложения с помощью adb install -f ... В противном случае он отказывался устанавливать его, хотя у меня было 1,7 ГБ свободной памяти во внутренней памяти; может быть, это потому, что у меня не было SDCARD. Но с опцией -f, по крайней мере, это сработало, я не знаю почему ...
xtof54

108

Вам необходимо увеличить объем памяти эмулятора Android. Для этого есть два пути:

  1. Щелкните правой кнопкой мыши на корне вашего Android-проекта, перейдите к «Запуск от имени», а затем к «Запустить настройки ...». Найдите узел «Приложение Android» в дереве слева, затем выберите свой проект и перейдите на вкладку «Цель» в правой части окна, найдите поле «Дополнительные параметры командной строки эмулятора» (иногда вы Мне нужно будет увеличить окно) и, наконец, вставить туда "-partition-size 1024". Нажмите Apply и затем Run, чтобы использовать ваш эмулятор.

  2. Перейдите в « Настройки» Eclipse и выберите «Запустить», добавить «-partition-size 1024» в поле «Параметр эмулятора по умолчанию». Нажмите «Применить» и используйте эмулятор как обычно.


103
Оскар, вы предполагаете, что это происходит на симуляторе. В моем случае это происходит на реальном устройстве, на которое этот ответ не распространяется.
Джефф Аксельрод

Второй вариант, похоже, не работает для меня. Однако вариант 1 сделал! Качественный товар! И работал с эмулятором 2.1.
DonnaLea

Это не сработало для меня, вероятно, потому что у меня включены снимки? Как получить эмулятор для запуска Android с нуля с помощью новой опции -partition-size?
Тимммм

Утрачен вариант 1 - у меня нет вкладки «Цель» в Ecclipse в этом месте.
Тед Бетц

2-й вариант работал для меня, спасибо за гуд пост @RacZo
DD.

31

Спасибо за размещение этого вопроса. У меня есть некоторые дополнительные идеи, которые могут помочь некоторым разработчикам.

Я отлаживаю свое приложение на устройстве (не на эмуляторе). На устройстве свободно включено 21 МБ /data(как показывает «df» при выполнении «adb shell»), а мое приложение - всего 5 МБ. Однако я обнаружил, что если я удалю другие приложения на устройстве (без перезагрузки телефона или перезапуска adbd), INSTALL_FAILED_INSUFFICIENT_STORAGE ненадолго уйдет, а затем вернется.

Таким образом, кажется, что для отладки моего 5-мегабайтного приложения требуется больше, чем 20 мегабайт /data, и, кроме того, что-то просачивалось каждый раз, когда я отлаживал свое приложение.

Поэтому я сделал «оболочку adb» и перечислил ВЕСЬ /dataкаталог с

cd /data
ls -a -l -R

И я посмотрел на 5000-строчный вывод, чтобы увидеть, куда уходит все пространство.

Я обнаружил огромное количество потраченного впустую пространства на моем устройстве в /data/klogкаталоге в виде старых файлов журналов от месячных сессий отладки.

Это были не мои файлы журналов: они были созданы какой-то частью инфраструктуры Android.

Я удалил их и сразу же сэкономил 58 МБ, которые не были отнесены в приложении «Настройки» к какому-либо конкретному приложению. У меня маленькое устройство, поэтому 58 МБ очень важно (около 40%).

До сих пор я не получил INSTALL_FAILED_INSUFFICIENT_STORAGE снова после многих запусков. Будем надеяться, что это была настоящая проблема, хотя ОП предполагает, что на его устройстве было достаточно места (но не сказал, сколько).

Надеемся, что некоторые из вас также смогут избежать INSTALL_FAILED_INSUFFICIENT_STORAGE путем периодического удаления /data/klog/*.

Или, вы можете по крайней мере сделать ls -a -l -Rв , /dataчтобы увидеть , где все ваше пространство будет, если действительно есть на самом деле некоторые (скрытые) пространства вопрос.


26
Есть идеи, как это сделать на телефоне без рута? У меня нет доступа к директории данных. отличный пост между прочим +1
Rich

1
Спасибо за информацию. К вашему сведению, вы можете объединить флаги в Unix, чтобы lsкоманда сталаls -alR
mharper

1
С правами root выполните: # su # du / data | сортировать -g, чтобы получить список папок / файлов, упорядоченных по размеру
JuanMa Cuevas

@JuanMaCuevas duперечисляет только папки.
NAXA

@Rich, попробуйте загрузить стороннее приложение Astro File Manager. Он очень популярен и дает вам доступ к файлам вашего телефона. play.google.com/store/apps/...
Azurespot

22

Помогает следующее:

  • Откройте оболочку на устройстве

    adb shell
  • Перейдите во временный каталог, куда сначала копируется входящий APK

    cd /data/local/tmp
  • Перечислите доступные файлы и удалите по желанию

    rm * // use at your own risk, good practice to list files first

До сих пор это было надежно для меня на реальном устройстве.


РЕДАКТИРОВАТЬ: Это оказалось не так надежное решение, как приведенное выше.

Я попробовал ряд решений. Ничего действительно не помогло. Наконец я нашел приложение под названием SD Maid . Это помогло.

Это говорит, что функциональность ограничена на рутированных устройствах. У меня корни, так что было бы хорошо видеть, как люди слышат, что они эффективны в этих сценариях, и если это была просто случайность, это сработало для меня (в любом случае это непредсказуемая проблема).

ПРИМЕЧАНИЕ: я не имею ничего общего с приложением. Просто нашел его с помощью поиска.


Это помогло мне .. Некоторые из моих предыдущих приложений хранятся в папке TMP. После того, как я удалил тех, кто работает нормально ...
Махендран Саккарай

20

Я решил это путем включения android:installLocation="auto"внутреннего <manifest>тега в файл AndroidManifest.xml.


Работает действительно. Спасибо.
Тедди

Это единственное исправление, которое сработало для меня на реальном устройстве. Спасибо.
Шах Абаз Хан

просто и приятно
работаю. спасибо

я добавил эти строки кода. но все еще получаю эту ошибкуError: ADB exited with exit code 1 adb: failed to install build\app\outputs\apk\app.apk: Failure [INSTALL_FAILED_INSUFFICIENT_STORAGE] Error launching application on Android SDK built for x86.
Husna

Лучшее решение для работы с эмулятором. Спасибо!
Br0wn

16

Я добавил дополнительную строку в файл манифеста приложения android:installLocation="preferExternal". с помощью этой строки он принудительно устанавливает приложение на внешнее хранилище. см. пример ниже,

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.nasir.phonegap"
    android:installLocation="preferExternal" >

11

Проблема, связанная с эмулятором, связана с тем, что в разделе не осталось места /data.

Например,

% adb shell df

Filesystem             Size   Used   Free   Blksize
/dev                   252M    32K   252M   4096
/mnt/asec              252M     0K   252M   4096
/mnt/obb               252M     0K   252M   4096
/system                154M   154M     0K   4096
/data                   64M    57M     6M   4096
/cache                  64M     1M    62M   4096

Вот примерное представление /data/appкаталога:

% adb shell ls -l /data/app

-rw-r--r-- system   system      19949 2011-10-12 17:09 CubeLiveWallpapers.apk
-rw-r--r-- system   system      27670 2011-10-12 17:09 GestureBuilder.apk
-rw-r--r-- system   system      34341 2011-10-12 17:09 SoftKeyboard.apk
-rw-r--r-- system   system      20151 2011-10-12 17:09 WidgetPreview.apk

Я удалил лишние APK файлы. Кажется, после каждой установки вы получаете новый файл APK. Просто удалите лишние APK файлы.

Например,

adb shell rm /data/app/com.brooklynmarathon.calendarapi2-1.apk

2
1. Запустите «adb shell» 2. Перейдите в каждый каталог данных и найдите каталоги с большими бесполезными файлами. 3. удалить их, используя «rm (имя файла)» 4. мои повторяющиеся проблемы с мусором, как «ApiDemos» и «dalvik-cache» (просто удалите все содержимое этого)
Адам

9

В моем случае сбой был вызван com.android.providers.mediaприложением. Я сталкивался с этим на эмуляторе Android x86. Что я сделал:

$ adb shell df
Filesystem             Size   Used   Free   Blksize
...
/data                  224M   209M    14M   4096
....

Слишком мало свободного места на /data

$ adb shell du /data
...
409870  /data/data/com.android.providers.media
...

Почти все было поглощено одним приложением! Это системное приложение, поэтому я считаю, что лучше не удалять его. Вместо этого я очистил данные приложения.

$ adb shell pm clear com.android.providers.media
Success
$ adb shell df
Filesystem             Size   Used   Free   Blksize
...
/data                  224M     8M   215M   4096
...

Диск был очищен и приложение успешно установлено.


Это единственное решение, которое сработало для меня. Через 2 часа! :)
Ruchir Baronia

6

Я чувствую себя немного странно, когда пишу это, но я не могу быть на 100% уверен, что в некоторых случаях это неправда (у меня это сработало). Если у вас были следующие симптомы:

  • Вы работали с использованием физического устройства (в моем случае, Samsung Galaxy Ace),
  • Вы работали в течение нескольких дней подряд,
  • Ваш телефон был подключен все время , днем ​​и ночью.
  • Вы начали получать эту ошибку через пару дней, и она продолжала ухудшаться.
  • Ни один из других ответов не сработал для вас.
  • Ты так же подал в отставку, как и я ...

Затем попробуйте это:

  • Отключите телефон, когда вы не работаете!

Я отключил телефон и оставил его на ВЕСЬ ДЕНЬ. Моя батарея немного разрядилась. После этого я снова подключил его и снова начал отладку. На этот раз все работало нормально! И я имею в виду действительно очень хорошо, как и раньше.

Возможно ли, что эта ошибка может быть связана с некоторыми аппаратными проблемами, связанными с батареей ? Мне все еще кажется странным думать об этом, но теперь я время от времени отключаю свой телефон (и на ночь), и проблема не возвращается.


Это происходит со мной все время - на всех моих устройствах. В течение дня вещи обычно начинают выходить из строя в конце каждого дня. Это так раздражает, и его довольно удивительный Google еще не исправил это ...
slott

Такое же поведение для меня, но перезагрузка телефона постоянно решала мою проблему.
bdevay

6

Отвечая на самый первый пост этой темы ...

Симптом: Некоторые приложения не устанавливаются, говоря, что места нет, а на самом деле свободного места достаточно как для внутреннего, так и для внешнего хранилища !!! Решение: отключить внешнюю установку по умолчанию.

Установка внешней установки по умолчанию с помощью этого:

adb shell pm set-install-location 2

Делает невозможной установку во многих приложениях, которые не могут быть установлены извне (например, adblock + или около того)

Тогда решение

adb shell pm set-install-location 0

Или

adb shell pm set-install-location 1

0: auto (if one is full - or irrelevant !!! - it select the other)
1: internal
2: external

Я начинал думать, что внутренняя память этого телефона была сломана, но установка места установки на 1 устранила проблему «недостаточно места». Спасибо!
Водин

6

Я попробовал следующее:

  • Перезагрузил мое устройство
  • Удалил предыдущий APK
  • Восстановить мой APK
  • Удалить мою предыдущую копию в устройстве
  • Переустановка

Проверьте, работает ли он так же с вами.


3
Да, перезагрузка устройства была единственной, чтобы работать (после попытки нескольких решений с этой страницы)
Sulea Cosmin

Перезапуск устройства работает :)
cinobili19

5

Samsung Galaxy Ace рекламирует 158 МБ встроенной памяти в своих спецификациях, но основные приложения и службы потребляют около 110 МБ (для проверки я использовал диспетчер задач на устройстве). Мое приложение было 52 МБ, потому что в нем было много ресурсов. Как только я удалил некоторые из них до 45 МБ, приложение удалось установить без проблем. Устройство все еще предупреждало меня о том, что внутреннее хранилище почти заполнено, и я должен удалить некоторые приложения, хотя у меня было установлено только одно приложение.

После установки окончательной версии пакета .apk, а затем его удаления мое устройство отображает 99 МБ свободного места, так что в конечном итоге оно может отлаживать информацию, загромождающую устройство. Смотрите ответ Луи Семприни .


4

В Затмении

Run -- > Debug Configurations --> Select "target", и выберите предпочитаемую цель эмулятора для запуска.

Затем под «дополнительными параметрами командной строки эмулятора» добавьте:

-размер 1024

Затем закройте эмулятор и щелкните значок отладки, чтобы запустить выбранный вами эмулятор.

введите описание изображения здесь

Надеюсь, поможет...!


Подсказка для Android Virtual Device Managerпользователей. Вы можете установить размер раздела на 1024 как «Внутреннее хранилище», которое представляет собойdisk.dataPartion.size
беспокоящее

3

Я столкнулся с этой проблемой с моим новым Nexus 4 и APK, созданным с помощью Adobe AIR. У меня уже был Android: installLocation = "предпочесть External" в моем манифесте. Я заметил, что я также звонил adb installс -sопцией (Установить пакет на общем запоминающем устройстве, таком как sdcard.), Которая выглядела как излишняя.

Снятие -sфлажка adb installисправило проблему для меня.


1
+1, хороший, -s следует использовать только если переопределяет предыдущую установленную сборку.
AAnkit

3

Поскольку эта проблема все еще существует, я решил добавить что-то к ответу RacZo в целях разработки. Если вы не используете плагин Eclipse или по какой-либо причине у вас нет исходного кода, а есть только .apk, вы можете увеличить размер раздела из командной строки, используя ту же опцию при запуске эмулятора:

emulator -avd <emulator name> -partition-size 1024

Насколько я знаю, этот параметр не задокументирован на developer.android.com, поэтому я решил опубликовать его здесь, чтобы люди могли найти это решение.


На данный момент это лучший вариант, потому что не требует обновления файлов или использования каких-либо приложений, простоavd
7ynk3r

2

Я столкнулся с этим вопросом, потому что я получал эту ошибку с помощью Sideload Wonder Machine для установки приложений на мой реальный телефон. Я обнаружил, что проблема заключалась в том, что у меня было несколько файлов .apk в каталоге / payload. Я думал, что это что-то, что было поддержано, но когда я удалил все .apk, кроме одного, ошибка исчезла.


2

Просто удалите приложение из эмулятора либо из командной строки, либо перейдите в настройки и удалите приложение. Это остановит ошибку от появления.


2

Если вы используете реальное устройство, вам просто не хватает внутренней памяти. Просто зайдите в настройки Android -> Приложения и переместите некоторые приложения на SD-карту или удалите некоторые приложения.

Если вы используете эмулятор, посмотрите ответ RacZo .


9
Мы говорим о недостаточной ошибке хранения, которая появляется, когда имеется достаточно доступного хранилища.
user999717

2

Я столкнулся с той же ошибкой, когда пытался пакетно установить около 50 приложений в каталоге SD-карт с помощью оболочки ADB после полного обновления ПЗУ:

for x in *.apk; do pm install -r $x; done

Некоторые из них установлены, но многие не удалось с ошибкой INSTALL_FAILED_INSUFFICIENT_STORAGE. У всех неудачных приложений было место в их имени. Я пакетно переименовал их и попробовал еще раз. Все сработало на этот раз. Я не делал перезагрузку или еще что-нибудь. Может быть, это не та проблема, с которой вы, ребята, сталкиваетесь, но это может помочь кому-то, кто ищет ту же проблему, что и я.


Также я замечаю, что когда я пропускаю по буквам название приложения, иногда появляется такая же ошибка. В моем случае это ошибочное сообщение об ошибке.
Инсилико

1

Эмуляторное решение

Откройте свой .Androidкаталог. Обычно в вашем домашнем каталоге. Затем перейдите avdи затем откройте каталог с именем avd, которое вы хотите изменить.

Теперь отредактируйте config.iniфайл и добавьте следующую строку или измените следующую строку:

disk.dataPartition.size=1024

Где 1024размер, который вы хотели бы использовать в МБ. Сохраните файл и запустите ваш эмулятор с wipe user dataфлажком. Теперь ваш эмулятор должен иметь новый размер.


1

Решение простое.

Откройте диспетчер AVD. Отредактируйте свой AVD.

Внизу в разделе оборудования, есть некоторые свойства, перечисленные с «New ...» и «Delete» справа от него.

Нажмите Новый. Выберите размер раздела данных. Установите значение «512 МБ» (требуется МБ). И вы сделали. если проблемы не исчезли, увеличьте размер системного раздела и раздела кэша, используя тот же метод.

Все это документировано прямо здесь: http://developer.android.com/guide/developing/devices/managing-avds.html


2
Раздел данных не доступен с Google API уровня 14
Тед Бетц

1

Убедитесь, что вы не подключаете устройство Android с USB при попытке запустить эмулятор


1

Если вы запускаете свое приложение на эмуляторе, и если эта проблема сохраняется, проверьте диспетчер уведомлений. Если он показывает значок и уведомление о «Память телефона заполнена», это означает, что вы уже установили так много приложений в своем эмуляторе. Удалите несколько приложений, которые вы не хотите в данный момент из «Настройки >> Управление приложением >> Выберите приложение >> Удалить».
Это установлено.
Теперь перезапустите программу.


1

Я получил эту ошибку сегодня, когда использовал свой телефон для тестирования / отладки с Eclipse.

Моя ошибка заключалась в том, что я использовал норвежский специальный символ («" »,« ø »,« å ») в имени приложения. Когда я изменил название приложения (используя «o» вместо «ø»), приложение было установлено правильно ..

Возможно, это не ваша проблема, но можно заметить, что другие люди получают такую ​​же ошибку.


1

Попробовав все остальное в этой теме, я обнаружил, что моя собственная проблема в том, что путь к файлу .apk был слишком длинным. Поэтому я перешел в каталог, где был .apk, и сделал:

cd /Very/Long/Path/To/Package/
adb install mypackage.apk

вместо

adb install /Very/Long/Path/To/Package/mypackage.apk

И это сработало ... установлено просто отлично.

Просто подумал, что это может помочь кому-то еще.


Я мог бы добавить, что создание исходного каталога символической ссылки позволили мне сделать сборки из IDE и отладки: ¯Ln -s / Users / ABC / а \ смехотворно \ длинный \ каталог \ путь / подпуть / subsubpath / subsubsubpath / shortpath
Дэвид ван Дугтерен

1

Временное решение:

Компилировать как 2.1 без android:installLocation="preferExternal".

ОК?

Компилировать как 2.2 в том числе android:installLocation="preferExternal".

Это все равно будет установлено в версии SDK менее 8 (тег XML игнорируется).


0

В моем случае это было исправлено путем увеличения расширенной памяти eclipse, путем изменения значения -Xmx768m в eclipse.ini


0

В итоге я удалил приложение с устройства, а затем переустановил его обратно в Eclipse. Это проблема, которую я постоянно получаю на своем устройстве от регулярного использования, но сегодня я получил это сообщение от разработки.


0

Я тоже столкнулся с той же проблемой, и я сделал «Сброс заводских данных», и после этого он работал нормально.


8
Я действительно не рекомендовал бы это как решение. Тотальный перебор.
Тим

3
Он стирает ваши / данные, что освобождает некоторое пространство, так что установки будут работать снова. Очень тупой инструмент, а не решение. Ошибка может вернуться после нескольких приложений.
user999717

22
Это то же самое, что доктор сказал: я не знаю, что случилось с твоей рукой, поэтому я отрезаю ее.
Дерек

0

У меня не было root-доступа на телефоне, и я не готов установить приложение на SD-карту. 15 МБ свободного места доступно, /data/а мое приложение меньше 2 МБ.

Некоторое время я проходил мимо; очистка проекта Eclipse и перезагрузка телефона, но в конце концов это перестало работать (вероятно, после обновления).

Очистка кеша моего приложения решила проблему для меня и не требует перезагрузки телефона или удаления приложения.

На рынке есть приложения, которые вы можете использовать для очистки кеша нескольких приложений одновременно. Ищите «чистый».

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.