adb安装apk报错Failure [INSTALL_FAILED_INVALID_URI]
今天在使用adb命令安裝一個apk時,遇到一個問題,記錄如下:
1、下載了一個demo.apk,放在D:\A_Download目錄下。
2、手機連上電腦,開啟USB調試權限。然后在電腦端啟動cmd,輸入以下命令:
C:\Users\leon>adb devices List of devices attached 0123456789ABCDEF device可以看出,手機已經成功連上。
3、輸入adb shell命令,進入shell模式。然后使用install命令安裝上述apk文件。但是提示失敗:
C:\Users\leon>adb shell shell@android:/ $ install D:\A_Download\demo.apk BusyBox 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分析了一下,原來是忘記使用pm前綴(關于install命令要加pm前綴的分析,請參見我的另一篇博客:安卓adb命令中pm工具的作用及用法詳解)。于是修改命令:
shell@android:/ $ pm install D:\A_Download\demo.apkpkg: D:A_Downloaddemo.apk Failure [INSTALL_FAILED_INVALID_URI]仍然提示失敗!
經過反復的分析,我認為應該是因為adb命令下,無法識別windows目錄信息導致。也就是說,adb命令無法識別此處的“D:\A_Download\demo.apk”目錄。也正是因為這樣,所以它給出的失敗原因是INVALID_URI。
為了解決這個問題,其實辦法很簡單,只要退出adb shell的環境就好。于是輸入exit命令回退到windows的cmd環境下,然后使用adb install命令,果然就成功了。
shell@android:/ $ exitC:\Users\leon>adb install D:\A_Download\demo.apk [100%] /data/local/tmp/demo.apkpkg: /data/local/tmp/demo.apk Success當然,上述思路只是我自己想當然的,必須驗證一下是否真是這么回事。怎么驗證呢?
如上所述,根據我的猜測,上述安裝方式之所以會失敗,是因為adb環境無法識別windows系統的目錄格式。所以,如果我們提前把文件拷貝到手機中,然后再進入adb shell環境并install,免去shell環境識別windows目錄格式的步驟,應該就能成功。
于是,我直接在cmd環境下把apk文件push到手機中,然后進入adb shell環境,運行pm install命令,果然成功了!
C:\Users\leon>adb push D:\A_Download\demo.apk sdcard/demo.apk [100%] sdcard/demo.apkC:\Users\leon>adb shell shell@android:/ $ cd sdcard/ shell@android:/sdcard $ pm install demo.apkpkg: demo.apk Success所以,總之一句話,adb shell環境下,系統無法識別windows的目錄格式,要么就退回到cmd環境下,要么就提前把windows的文件拷貝到手機中。類似的問題就不會再出現了!
搞定,收工!
總結
以上是生活随笔為你收集整理的adb安装apk报错Failure [INSTALL_FAILED_INVALID_URI]的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: a站是什么(p站都是什么)
- 下一篇: 关于Qt、Qt/E、Qtopia、qvf