如何在SD卡上安装apk?

时间:2012-02-01 17:19:39

标签: android install apk

我试图只在sd-card上安装apk。我可以安装特定文件大小的apks,但超过特定文件大小的apks只会安装在内部内存中。 (我需要安装到SD卡)

/ mnt / security / asec

中没有tmp文件
# 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卡的格式有关。我已经使用FAT和默认分配大小在Windows 7上格式化了SD卡。我有什么遗漏的吗?

2 个答案:

答案 0 :(得分:3)

要将.apk文件安装到Sdcard,请使用清单文件中的以下标记

<强>机器人:的installLocation = “preferExternal”

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

如果声明“preferExternal”,则请求将应用程序安装在外部存储上,但系统不保证您的应用程序将安装在外部存储上。如果外部存储空间已满,系统会将其安装在内部存储器上。用户还可以在两个位置之间移动您的应用程序。

如果您声明“自动”,则表明您的应用程序可能已安装在外部存储上,但您没有安装位置的首选项。系统将根据几个因素决定安装应用程序的位置。用户还可以在两个位置之间移动您的应用程序。

了解更多详情 http://developer.android.com/guide/appendix/install-location.html

答案 1 :(得分:0)

我也面临同样的问题。检查内核中是否启用了设备映射器。

  

adb shell - &gt;的/ dev /设备映射