Как установить apk только на SD-карту? - PullRequest
0 голосов
/ 01 февраля 2012

Я пытаюсь установить apk только на sd-карту.Я могу установить apks, которые имеют определенный размер файла, но файлы с определенным размером файла будут устанавливаться только во внутренней памяти.(Мне нужно установить на SD-карту)

Нет файлов tmp в / mnt / security / asec

# ls /mnt/secure/asec
ls /mnt/secure/asec
com.home.version2-2.asec

Журнал попыток "adb install -r -s version1-debug.apk "

I/PackageHelper( 5663): Size of container 40 MB
W/ActivityManager( 5127): No content provider found for permission revoke: file:///sdcard/tmp/version1-debug.apk
D/VoldCmdListener( 1461): asec list
D/VoldCmdListener( 1461): asec create smdl2tmp1 40 fat {} 10009
W/logwrapper(28481): Unable to background process (No such file or directory)
I//system/bin/newfs_msdos( 1461): /system/bin/newfs_msdos: warning, /dev/block/dm-0 is not a character device
I//system/bin/newfs_msdos( 1461): /system/bin/newfs_msdos: Skipping mount checks
I//system/bin/newfs_msdos( 1461): Bogus heads from kernel - setting sane value
I//system/bin/newfs_msdos( 1461): Bogus sectors from kernel - setting sane value
I//system/bin/newfs_msdos( 1461): /system/bin/newfs_msdos: 2599 clusters too few clusters for FAT16, need 4096
I/logwrapper( 1461): /system/bin/newfs_msdos terminated by exit(1)
E/Vold    ( 1461): Format failed (unknown exit code 1)
E/Vold    ( 1461): ASEC FAT format failed (I/O error)

Журнал попыток" adb install -r -s version2-debug.apk "

I/PackageHelper( 5663): Size of container 20 MB
W/ActivityManager( 5127): No content provider found for permission revoke: file:///sdcard/tmp/version2-debug.apk
D/VoldCmdListener( 1461): asec list
D/VoldCmdListener( 1461): asec create smdl2tmp1 20 fat {} 10009
W/logwrapper(28562): Unable to background process (No such file or directory)
I//system/bin/newfs_msdos( 1461): /system/bin/newfs_msdos: warning, /dev/block/dm-0 is not a character device
I//system/bin/newfs_msdos( 1461): /system/bin/newfs_msdos: Skipping mount checks
I//system/bin/newfs_msdos( 1461): Bogus heads from kernel - setting sane value
I//system/bin/newfs_msdos( 1461): Bogus sectors from kernel - setting sane value
I//system/bin/newfs_msdos( 1461): /dev/block/dm-0: 41600 sectors in 1300 FAT12 clusters (16384 bytes/cluster)
I//system/bin/newfs_msdos( 1461): bps=512 spc=32 res=1 nft=2 rde=512 sec=41643 mid=0xf0 spf=4 spt=63 hds=64 hid=0
I/Vold    ( 1461): Filesystem formatted OK
D/VoldCmdListener( 1461): asec path smdl2tmp1

Мне интересно, связано ли это с форматированиемSD Card.Я отформатировал SD-карту на Windows 7 с FAT и размером по умолчанию.Я что-то пропустил?

Ответы [ 2 ]

3 голосов
/ 02 февраля 2012

Чтобы установить файл .apk в SDCard, используйте тег ниже в файле манифеста

android: installLocation = "ПредпочитаемыйExternal"

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

Если вы объявляете "Предпочитать External", вы запрашиваете, чтобы ваше приложение было установлено на внешнем хранилище, но система не гарантирует, что ваше приложение будет установлено на внешнем хранилище.Если внешнее хранилище заполнено, система установит его во внутреннее хранилище.Пользователь также может перемещать ваше приложение между двумя расположениями.

Если вы объявляете «auto», вы указываете, что ваше приложение может быть установлено во внешнем хранилище, но у вас нет предпочтения места установки.Система решит, куда установить ваше приложение, основываясь на нескольких факторах.Пользователь также может перемещать ваше приложение между двумя местоположениями.

для получения более подробной информации http://developer.android.com/guide/appendix/install-location.html

0 голосов
/ 10 августа 2012

У меня тоже такая же проблема.Проверьте, включено ли устройство сопоставления устройств в вашем ядре.

adb shell -> / dev / device-mapper

...