Android adb安裝apk時(shí)提示Invalid APK file的問(wèn)題
今天在使用adb命令安裝apk時(shí),無(wú)法安裝成功,進(jìn)入到android sdk 下的platform_tools下也是無(wú)法安裝成功:
先貼一下我的調(diào)用過(guò)程
xu:~ xiaokai$ adb devicesList of devices attached0123456789ABCDEF devicexu:~ xiaokai$ adb shellshell@T36DH_CM3:/ $ pm install /Users/xiaokai/Downloads/app-release.apk pkg: /Users/xiaokai/Downloads/app-release.apkFailure [INSTALL_FAILED_INVALID_URI]1|shell@T36DH_CM3:/ $ adb install /Users/xiaokai/Downloads/app-release.apk Invalid APK file: /Users/xiaokai/Downloads/app-release.apk255|shell@T36DH_CM3:/ $ exitxu:~ xiaokai$ adb install /Users/xiaokai/Downloads/app-release.apk [100%] /data/local/tmp/app-release.apk pkg: /data/local/tmp/app-release.apkSuccess
adb devices
首先調(diào)用了adb devices,查看有沒(méi)有可用的手機(jī),`0123456789ABCDEF device`說(shuō)明有可用的手機(jī),
adb shell
然后進(jìn)入手機(jī),安裝apk,
pm install /Users/xiaokai/Downloads/app-release.apk
發(fā)現(xiàn)出現(xiàn)問(wèn)題,
exit
退出前手機(jī) ,進(jìn)入root目錄
adb install /Users/xiaokai/Downloads/app-release.apk
進(jìn)行安裝,發(fā)現(xiàn)安裝成功,網(wǎng)上查了一下,下面這篇文章介紹了一些這方面的問(wèn)題
補(bǔ)充上面文章:adb安裝apk報(bào)錯(cuò)Failure [INSTALL_FAILED_INVALID_URI]
今天在使用adb命令安裝一個(gè)apk時(shí),遇到一個(gè)問(wèn)題,記錄如下:
1、下載了一個(gè)demo.apk,放在D:A_Download目錄下。
2、手機(jī)連上電腦,開(kāi)啟USB調(diào)試權(quán)限。然后在電腦端啟動(dòng)cmd,輸入以下命令:
C:Usersleon>adb devicesList of devices attached0123456789ABCDEF device
可以看出,手機(jī)已經(jīng)成功連上。
3、輸入adb shell命令,進(jìn)入shell模式。然后使用install命令安裝上述apk文件。但是提示失敗:
C:Usersleon>adb shellshell@android:/ $ install D:A_Downloaddemo.apkBusyBox v1.20.2-jb bionic (2012-11-25 17:47 +0100) multi-call binary.Usage: install [-cdDsp] [-o USER] [-g GRP] [-m MODE] [SOURCE]... DESTCopy files and set attributes -c Just copy (default) -d Create directories -D Create leading target directories -s Strip symbol table -p Preserve date -o USER Set ownership -g GRP Set group ownership -m MODE Set permissions
分析了一下,原來(lái)是忘記使用pm前綴(關(guān)于install命令要加pm前綴的分析,請(qǐng)參見(jiàn)另一篇文章:安卓adb命令中pm工具的作用及用法詳解)。于是修改命令:
shell@android:/ $ pm install D:A_Downloaddemo.apk pkg: D:A_Downloaddemo.apkFailure [INSTALL_FAILED_INVALID_URI]
仍然提示失敗!
經(jīng)過(guò)反復(fù)的分析,我認(rèn)為應(yīng)該是因?yàn)閍db命令下,無(wú)法識(shí)別windows目錄信息導(dǎo)致。也就是說(shuō),adb命令無(wú)法識(shí)別此處的“D:A_Downloaddemo.apk”目錄。也正是因?yàn)檫@樣,所以它給出的失敗原因是INVALID_URI。
為了解決這個(gè)問(wèn)題,其實(shí)辦法很簡(jiǎn)單,只要退出adb shell的環(huán)境就好。于是輸入exit命令回退到windows的cmd環(huán)境下,然后使用adb install命令,果然就成功了。
shell@android:/ $ exitC:Usersleon>adb install D:A_Downloaddemo.apk[100%] /data/local/tmp/demo.apk pkg: /data/local/tmp/demo.apkSuccess
當(dāng)然,上述思路只是我自己想當(dāng)然的,必須驗(yàn)證一下是否真是這么回事。怎么驗(yàn)證呢?
如上所述,根據(jù)我的猜測(cè),上述安裝方式之所以會(huì)失敗,是因?yàn)閍db環(huán)境無(wú)法識(shí)別windows系統(tǒng)的目錄格式。所以,如果我們提前把文件拷貝到手機(jī)中,然后再進(jìn)入adb shell環(huán)境并install,免去shell環(huán)境識(shí)別windows目錄格式的步驟,應(yīng)該就能成功。
于是,我直接在cmd環(huán)境下把a(bǔ)pk文件push到手機(jī)中,然后進(jìn)入adb shell環(huán)境,運(yùn)行pm install命令,果然成功了!
C:Usersleon>adb push D:A_Downloaddemo.apk sdcard/demo.apk[100%] sdcard/demo.apkC:Usersleon>adb shellshell@android:/ $ cd sdcard/shell@android:/sdcard $ pm install demo.apk pkg: demo.apkSuccess
所以,總之一句話,adb shell環(huán)境下,系統(tǒng)無(wú)法識(shí)別windows的目錄格式,要么就退回到cmd環(huán)境下,要么就提前把windows的文件拷貝到手機(jī)中。類似的問(wèn)題就不會(huì)再出現(xiàn)了!
搞定,收工!
以上這篇Android adb安裝apk時(shí)提示Invalid APK file的問(wèn)題就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. python 如何在 Matplotlib 中繪制垂直線2. bootstrap select2 動(dòng)態(tài)從后臺(tái)Ajax動(dòng)態(tài)獲取數(shù)據(jù)的代碼3. ASP常用日期格式化函數(shù) FormatDate()4. python中@contextmanager實(shí)例用法5. html中的form不提交(排除)某些input 原創(chuàng)6. CSS3中Transition屬性詳解以及示例分享7. js select支持手動(dòng)輸入功能實(shí)現(xiàn)代碼8. 如何通過(guò)python實(shí)現(xiàn)IOU計(jì)算代碼實(shí)例9. 開(kāi)發(fā)效率翻倍的Web API使用技巧10. vue使用moment如何將時(shí)間戳轉(zhuǎn)為標(biāo)準(zhǔn)日期時(shí)間格式
