2012-02-01 151 views
0

我試圖只安裝一個apk到SD卡上。我可以安裝在特定文件大小下的文件,但超過特定文件大小的文件只能安裝在內部存儲器上。 (我需要安裝到SD卡上)如何僅在sd卡上安裝apk?

有在/ mnt /安全沒有TMP文件/ ASEC

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

登錄嘗試從 「亞行安裝-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) 

從試圖登錄「亞行安裝-r -s版本2,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 

我想知道,如果它是什麼做的w^ith格式的SD卡。我已經在Windows 7上使用FAT和默認分配大小格式化SD卡。有什麼我錯過了嗎?

回答

3

要安裝.apk文件到SD卡使用下面的標籤清單文件

安卓的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

+0

根據該文檔,亞行安裝-s也確保它關係到外部存儲。當試圖安裝更大的apk時,將preferExternal添加到清單門檻中會給出錯誤。謝謝您的好意〜 – ashleysmithgpu 2012-02-02 10:17:27

+0

@yuumei:請張貼錯誤 – Rajeswari 2012-02-02 11:10:18

+0

ADB安裝-r -s VERSION1-debug.apk 3508 KB /秒(在10.655s 38278514個字節) PKG:/sdcard/tmp/version1-debug.apk 失敗[INSTALL_FAILED_CONTAINER_ERROR] – ashleysmithgpu 2012-02-02 11:39:39

0

我也面臨着同樣的問題。檢查內核中是否啓用了設備映射器。

亞行外殼 - >的/ dev /設備映射