Приложение не может быть перемещено на SD-карту

Приложение было перемещено на SD-карту.

Я сделал сброс настроек. Потом я переустановил приложение. Он был загружен приложением Humble Bundle, а не из Google Play.

Теперь приложение не может быть перемещено на SD, получая ошибку «Не удалось переместить приложение».

Я предполагаю, что на SD-карте уже есть какой-то кеш Android для этого приложения, который предотвращает его повторное перемещение, но это всего лишь предположение.

Бекап титаниума тоже не смог его перенести. Ну, он сказал, что это так, но он все еще «по телефону».

Любые идеи приветствуются.

Телефон HTC Sensation.

Ответы (2)

Скорее всего, вы оставили некоторые остатки (перемещенного) приложения на SD-карте.

Самый простой способ удалить это, вероятно, вытащить SD-карту и удалить перемещенное приложение на вашем компьютере (оно недоступно на вашем телефоне).

Например, полный путь к перемещенному приложению трикодера на моем телефоне: /mnt/sdcard/.android_secure/org.hermit.tricorder-1.asec.

Просто откройте его на своем ПК и удалите соответствующий файл .asec в папке .android_secure.

Предыстория (почему бы не сделать это на телефоне):

Перемещенные приложения находятся в смонтированном файле-контейнере cryptoloop, который хранится в /mnt/sdcard/.android_asec/*. Однако это недоступно, поэтому обычные приложения не могут возиться с перемещенными приложениями (есть tmpf, смонтированный поверх /mnt/sdcard/.android_secure с пространством 0 КБ для запрета доступа). Оригинальный .android_secure привязывается к /mnt/asec/secure, где система может получить доступ к контейнерам.

app_36@android:/ $ mount 
# omitted unecessary stuff, only the sdcard, the bind mount and the tmpfs mount are shown 
/dev/block/vold/254:1 /mnt/sdcard vfat [mount-options-omitted] 0 0
/dev/block/vold/254:1 /mnt/secure/asec vfat [mount-options-omitted] 0 0
tmpfs /mnt/sdcard/.android_secure tmpfs [mount-options-omitted] 0 0 
# no output, tmpfs still mounted:
app_36@android:/mnt/sdcard/.android_secure # ls
app_36@android:/mnt/secure/asec # umount /mnt/sdcard/.android_secure
# umounted... now there's what we expect:
app_36@android:/mnt/secure/asec # cd /mnt/sdcard/.android_secure
app_36@android:/mnt/sdcard/.android_secure # ls
org.hermit.tricorder-1.asec
+'d, Точно мои мысли по этому вопросу! :)
Да, не пробовал, но должно быть именно так. PS: Если вы хотите сделать это на телефоне, вам нужен root, чтобы размонтировать монтирование tmpfs (как показано выше), а затем просто удалите файл .asec с помощью любого установленного вами файлового проводника.
Это был правильный ход. Я удалил весь /.android_secure (так как я все равно перезагрузил телефон). Теперь я могу перемещать почти все, что хочу, на SD без ошибок. Однако рассматриваемое приложение по-прежнему не может быть перемещено. Поскольку это решило проблему для большинства приложений, я отмечу ее решенной, но буду признателен за любую дополнительную информацию. Спасибо.
Хороший вопрос. У меня остались только менее конструктивные идеи. Что говорят журналы: logcat . В противном случае, стандартная процедура: переустановить приложение и повторить попытку? Это платное (защищенное) приложение, которое нельзя переместить?
@ce4: Спасибо за этот подробный ответ! Не то, чтобы проблема затронула меня, но теперь я лучше понимаю, как /sdcard/.android_secureи /mnt/secure/asecработать вместе, технически говоря.
Переустанавливал приложение и пробовал - да, несколько раз, тот же результат. Logcat великолепен, спасибо. Интересно, что в журнале отображается «Не удалось отключить asec '/mnt/secure/asec/appname.asec' (Нет такого файла или каталога)». Странно, конечно, его нет. Пытался создать пустой файл с таким же именем, все еще не может быть перемещен. Затем было это: «Не найден поставщик контента для отзыва разрешения: файл:///данные/приложение/имя_приложения.apk». Я предполагаю, что что-то не так с разрешениями. Я посмотрю на это дальше. Спасибо за много полезной информации.

Когда у меня был N1, который быстро заполнял пространство, я использовал приложение под названием ModInstallLocation для перемещения приложений, которые технически нельзя было перемещать через Apps2SD.

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

Как оказалось, ModInstallLocation не помог, приложение все еще было установлено на телефоне. Apps2SD открывает стандартную страницу информации о приложении Android с кнопкой «Переместить на SD», которая не работает с сообщением «Не удалось переместить приложение».