1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > adb安装apk报错Failure [INSTALL_FAILED_INVALID_URI]

adb安装apk报错Failure [INSTALL_FAILED_INVALID_URI]

时间:2023-10-09 19:24:02

相关推荐

adb安装apk报错Failure [INSTALL_FAILED_INVALID_URI]

今天在使用adb命令安装一个apk时,遇到一个问题,记录如下:

1、下载了一个demo.apk,放在D:\A_Download目录下。

2、手机连上电脑,开启USB调试权限。然后在电脑端启动cmd,输入以下命令:

C:\Users\leon>adb devicesList of devices attached0123456789ABCDEF device

可以看出,手机已经成功连上。

3、输入adb shell命令,进入shell模式。然后使用install命令安装上述apk文件。但是提示失败:

C:\Users\leon>adb shellshell@android:/ $ install D:\A_Download\demo.apkBusyBox v1.20.2-jb bionic (-11-25 17:47 +0100) multi-call binary.Usage: install [-cdDsp] [-o USER] [-g GRP] [-m MODE] [SOURCE]... DESTCopy files and set attributes-cJust copy (default) -dCreate directories -DCreate leading target directories -sStrip symbol table -pPreserve 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.apkFailure [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.apkSuccess

当然,上述思路只是我自己想当然的,必须验证一下是否真是这么回事。怎么验证呢?

如上所述,根据我的猜测,上述安装方式之所以会失败,是因为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 shellshell@android:/ $ cd sdcard/shell@android:/sdcard $ pm install demo.apkpkg: demo.apkSuccess

所以,总之一句话,adb shell环境下,系统无法识别windows的目录格式,要么就退回到cmd环境下,要么就提前把windows的文件拷贝到手机中。类似的问题就不会再出现了!

搞定,收工!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。